读书人

一个关于dll字符串参数的有关问题

发布时间: 2012-03-07 09:13:51 作者: rapoo

求助,一个关于dll字符串参数的问题
下面是delphi源码
implementation

{$R *.dfm}
procedure StrTest(value: pchar);external 'dmdll.dll ';
begin
sCpuID := 'abcd ';
//ReadCpuID(PChar(sCpuID));
StrTest(pchar(sCpuID));
label1.Caption := string(pchar(sCpuID));
end;
下面是用vc++写dll源码,最终生成dmdll.dll
头文件:
...
extern "C " __declspec(dllexport) void StrTest(LPTSTR value);
cpp文件:
void StrTest(LPTSTR value)
{
StrCpy(value, (LPCSTR) "Hello ");
}
最后调用的结果是sCpuID还是 'abcd ',请大家给指正一下,谢谢

[解决办法]
var
lsStr:String;
begin
SetLength(lsStr, 100);
//ReadCpuID(PChar(sCpuID));
StrTest(pchar(lsStr));
label1.Caption := lsStr;
end;

传递指针类型的参数时,要先分配足够的内存空间出来

读书人网 >.NET

热点推荐