关于静态变量的简单问题,有点想不通
在.Net中养成的习惯,定义常量加类型;在Dephi中,写了一个Library--ArsenalLibrary,现在在Form中调用:
Const DLLName='ArsenalLibrary.dll'; //可以通过
//Const DLLName:PChar='ArsenalLibrary.dll'; //不可以通过
//Const DLLName:String='ArsenalLibrary.dll';//不可以通过
Const CAPTAINNAME:PChar='Arsenal'; //可以通过
Const AGE:Integer=32; //可以通过
function GetDTMF(iStart:Integer):Integer;stdcall;External DLLName;
implementation
procedure TForm1.btnCaulClick(Sender: TObject);
var iIndex:Integer;
begin
iIndex:=10;
ShowMessage(IntToStr(GetDTMF(iIndex));
ShowMessage(IntToStr(AGE)+CAPTAINNAME);
end;
为DLLName这个静态常量调用时,就不能加类型呢?
[解决办法]
如果你用C++,请注意const及#defind的区别
delphi的const有两种意义,一种相当于c++中的#define:
Const DLLName='ArsenalLibrary.dll'; //没有类型
另一种相当于C++的const,
Const CAPTAINNAME:PChar='Arsenal'; //有类型
External 后面要求的是真正的常量,所以只能用第一种方式(语法上规定的)
[解决办法]
楼上说的很清楚,我也是来学习的
[解决办法]
1楼回答很完美..
[解决办法]
我记得const定义的常量是不需要类型的