使用dll出错!!(求助)(50分)

  • 主题发起人 主题发起人 DJ6674
  • 开始时间 开始时间
D

DJ6674

Unregistered / Unconfirmed
GUEST, unregistred user!
我的dll文件如下:<br>Procedure GetOSInfo(Var SysName,SysVer:String);stdcall;export;<br>……(这是一个判断os的过程)<br>exports<br>&nbsp; &nbsp;GetOSInfo name 'getos';<br>我的应用程序如下:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>read:hModule;<br>getos: procedure(Var SysName,SysVer:String); stdcall;<br>os1,os2:string;<br>begin<br>&nbsp;read:=LoadLibrary('dlls.dll');<br>&nbsp; @getos:=GetProcAddress(read,'getos');<br>&nbsp; getos(os1,os2);<br>&nbsp; label1.Caption:=os1;<br>&nbsp; label2.Caption:=os2;<br>&nbsp; &nbsp;FreeLibrary(read);<br>&nbsp; end;<br>在按下button1后,出错如下:Access violation at address 00403E46 in module 'project1.exe'.Read of address 00DD2054.
 
直接用string但为类型在dll中传递的话<br>需要在工程文件的(注意是工程文件)uses第一个位置处引用sharemem单元<br>这是一个老声长谈的问题了
 
是呀,最好用pchar类型
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
540
import
I
I
回复
0
查看
898
import
I
I
回复
0
查看
854
import
I
I
回复
0
查看
666
import
I
后退
顶部