读书人

delphi怎么接收DLL传来的NULL值

发布时间: 2012-02-06 15:52:44 作者: rapoo

delphi如何接收DLL传来的NULL值?
调用别人的DLL,函数成功返回一字符串,失败返回NULL,我要用什么变量去接收这个返回值进而对函数结果进行判断呢?是用字符串还是什么啊?对于DELPHI里面的NULL了解的不是很多,诶,咋办?

[解决办法]
用PChar类型的变量, 调用前别忘了先给变量分配空间。
[解决办法]
用指针的话,判断是否为nil
用整数的话,判断是否为0

function DllFunc() : Pointer;
if DllFunc=nil then

function DllFunc() : Integer;
if DllFunc=0 then

[解决办法]
不能用pchar,要用widestring,不存在null,在delphi里空的表示是 nil,这个不能针对字符串,针对某一对象,比如按钮是否存在 用 if button1=nil then .....
也就是说字符串只能用 if str= ' ' then ....
[解决办法]
给个用PChar的例子:

function F1: PChar;
begin
Result := nil;
end;

function F2: PChar;
begin
Result := 'Hello ';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
A : PChar;
begin
GetMem(A, 128);
A := F1;
if A <> nil then ShowMessage(A);
A := F2;
if A <> nil then ShowMessage(A);
end;

读书人网 >.NET

热点推荐