fucntion ReadVersion(VersionInfo:PChaar); stdcall;external 'TestDll.dll';var
VersionInfo:string;
begin
SetLength(VersionInfo,YourMaxLen);//ex:YourMaxLen = 255;
ReadVersion(PChar(VersionInfo));
SetLength(VersionInfo,StrLen(VersionInfo));
//应该可以在这里用了end;
VersionInfo:string;
begin
SetLength(VersionInfo,YourMaxLen);//ex:YourMaxLen = 255;
ReadVersion(PChar(VersionInfo));
SetLength(VersionInfo,StrLen(VersionInfo));
//应该可以在这里用了end;
fillchar(VersionInfo,0,256);
ReadVersion(@VersionInfo[0]);
ShowMessage(VersionInfo);
end;
error:
incompatible types:'string' and 'Pchar'
var
version:array[0..255] of char;
begin
if ReadVersionString(version) then
ShowMessage(version);
end;to shinesi(阿shine)
fillchar(VersionInfo,0,256);-->error:
Not enough actual parameedrs谢谢!
fillchar(VersionInfo,256,0);
听课,Pchar应该就是指针,但是。。
SetLength(VersionInfo,StrLen(VersionInfo));
是:
SetLength(VersionInfo,StrLen(PChar(VersionInfo)));
参考一下Delphi5开发人员指南27-28页理解了就行了
****API SetDispString(const char* strData);
strData:不超过16个字符
---------------------------------
function SetDispString(str:pchar):bool;stdcall;external 'Testdll.dll' name 'SetDispString';
//设置设备的显示字符
同理怎么样要将Edit1.text的字符传送到设置屏幕中?
VersionInfo:PChar;
begin
VersionInfo := StrAlloc(100);
ReadVersion(VersionInfo);
ShowMessage(VersionInfo);
StrDispose(VersionInfo);
end;StrAlloc()函数是专门给PChar分配内存的。
str : PChar;
begin
str := StrAlloc(Length(Edit1.Caption) + 1);
StrPCopy(str, Edit1.Caption);
SetDispString(str);
StrDispose(str);
end;肯定可以。在Windows API中很多时候都需要用到PChar的。
****API SetDispString(const char* strData);
strData:不超过16个字符
---------------------------------
function SetDispString(str:pchar):bool;stdcall;external 'Testdll.dll' name 'SetDispString';
//设置设备的显示字符
同理怎么样要将Edit1.text的字符传送到设置屏幕中?
你的方法是可行,但执行完后会提示:
该程序执行了非法操作,即将关闭。
如果仍有问题请与程序供应商联系。???