【发布时间】:2008-10-25 22:15:50
【问题描述】:
我有一个用 C 编写的旧版 DLL,其中包含一个返回字符串的函数,我需要从 Delphi 访问这个函数。我拥有的关于 DLL 的唯一信息是用于访问函数的 VB 声明:
公开声明函数 DecryptStr Lib "strlib" (Str As String) As String
我尝试了以下方法但没有成功:
声明:
function DecryptStr(s: PChar): PChar; cdecl; external 'strlib.dll';
用法:
var
p1, p2 : pchar;
begin
GetMem( p1, 255 );
StrPCopy( p2, 'some string to decrypt' );
p1 := DecryptStr( p2 );
end;
这会始终使 DLL 因访问冲突而崩溃。我很茫然。
有什么建议吗?
【问题讨论】:
-
行“StrPCopy(p2”正确吗?不应该是“StrPCopy(p1”吗?