首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-03-07 
求助,一个关于dll字符串参数的问题下面是delphi源码implementation{$R*.dfm}procedureStrTest(value:pchar

求助,一个关于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;

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

热点排行