关于dll问题(100分)

  • 主题发起人 主题发起人 深圳shi
  • 开始时间 开始时间

深圳shi

Unregistered / Unconfirmed
GUEST, unregistred user!
我的dll
procedure Hobbit (var str: string)
stdcall;
begin
str := '12345';
end;
exports
Hobbit index 1;

调用
procedure Hobbit (var str: string)
stdcall
external 'Entry_Dll.dll' index 1;


调用时出现" invalid pointer operation" 错误
为什么?


 
ShareMM.DLL
 
sharemem单元还是不行
 
procedure Hobbit (str: PChar)
stdcall;
 
不用 index 1 不可以吗
 
还是不行,我把以前的delphi6的程序(以前运行正常)拿出来,出同样的错误!
 
Dll中最好还是不要用String,否则需要在工程第一位置引用ShareMem,用下面方法试试
procedure Hobbit (str: PChar)
stdcall;
var
s: String;
begin
s:='12345';
Move(s[0],str^,Length(s));
end;

exports
Hobbit index 1;

调用:
procedure Hobbit (str: PChar)
stdcall
external 'Entry_Dll.dll' index 1;

var
Str: String;
begin
SetLength(Str,5)
//先分配足够的长度
Hobbit(@Str[1]);
ShowMessage(Str);
end;
 
后退
顶部