我在主模块中调用到自己编的DLL中的过程函数会出现异常:INVALID POINTER OPERATION(50分)

  • 主题发起人 主题发起人 天什
  • 开始时间 开始时间

天什

Unregistered / Unconfirmed
GUEST, unregistred user!
我在主模块中调用到自己编的DLL中的过程函数会出现异常:
"INVALID POINTER OPERATION";不知为什么?
在主模块中
procedure strchangestrs(strs:string;x:integer;var stringstrs:string);stdcall;
external "xx.dll"
调用是:
j:=0;
......
j:=j+1;
strchangestrs(inttostr(j),3,strstr);

 
string 的问题啦!
如果DLL输出的过程或函数带有长字符类型的参数,或者函数返回类型是长字符串或
带有长字符串元素的构造类型,Object Pascal规定无论是DLL还是调用它的程序必
须把ShareMem单元加到Uses部分。而ShareMem单元是从DelphiMM.DLL这个DLL中引入
的接口单元,因此这种程序分发时必须带有DelphiMM.DLL。Delphi建议为了避免使
用DelphiMM.DLL,传递字符串信息时使用PChar或ShortString类型参数。
 
接受答案了.
 
后退
顶部