如何将VC写的dll接口声明翻译到delphi中使用? ( 积分: 100 )

  • 主题发起人 主题发起人 cnhotel
  • 开始时间 开始时间
C

cnhotel

Unregistered / Unconfirmed
GUEST, unregistred user!
COMM_SDK.dll;<br>SDK_SW&nbsp;void&nbsp;_stdcall&nbsp;ClosePort(void);<br>SDK_SW&nbsp;int&nbsp;_stdcall&nbsp;Req_DownloadFile(char&nbsp;*strFile,&nbsp;char&nbsp;*strDest,&nbsp;int&nbsp;nCreateFlag);<br><br>这个vc编译的dll中的两个函数在delphi中如何声明引用?<br>其中void这个参数怎么赋值?
 
procedure&nbsp;ClosePort;&nbsp;stdcall;&nbsp;external&nbsp;'COMM_SDK.dll';<br>function&nbsp;Req_DownloadFile(strFile,&nbsp;strDest:&nbsp;PChar;&nbsp;nCreateFlag:&nbsp;Integer):&nbsp;Integer;&nbsp;stdcall;&nbsp;external&nbsp;'COMM_SDK.dll';
 
谢谢楼上指点<br>在delphi中调用:<br>ClosePort或者Req_DownloadFile('c:/aa/aa.dat','c:/bb',1)后都是提示错误:<br>&quot;external&nbsp;exception&nbsp;C000008&quot;<br><br>请问大概什么原因引起的?dll释放?<br><br>请假了~~~
 
C0000008&nbsp;一般是&nbsp;int&nbsp;3引起的。你的那个&nbsp;vc&nbsp;dll多半是&nbsp;Debug&nbsp;版,所有里面有大量&nbsp;CC,到堆栈跑飞的时候就会被seh截获,出现你现在这种情况。
 
那请问&lt;白河愁&gt;大侠,有没有什么办法可以解决这个问题?谢谢
 
用ctrl+alt+c的调试功能看看堆栈是因为什么原因跑飞的。
 
已解决,换了个另外版本的dll成功调用!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
904
import
I
后退
顶部