有关DLL中使用function的奇怪问题?(20分)

N

natolee

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个简单的DLL,代码如下:<br>DLL的代码project1.dll<br>function aa(str:string):string;export;<br>implement<br>function aa(str:string):string;<br>begin<br>&nbsp; result:=str+'df';<br>end;<br>调用程序的代码如下:<br>function aa(str:string):string;far external 'project1.dll';<br>procedure button1click(sender:Tobject)<br>begin<br>&nbsp; showmessage(aa('asd'));<br>end;<br>程序运行后能返回正确的结果,但是随后就出现一个无效指针操作的错误,不知为何?
 
uses ShareMem;
 
在USES中加入ShareMem单元,要在第一个!单元文件和项目文件都要加!<br><br>在DLL中传递字符串最好是用PCHAR
 
传递字符好像是有点问题,我也碰到过
 
加上 stdcall; 看看
 
多人接受答案了。
 
在dpr和单元文件中都要加sharemem,并且要是第一个
 
顶部