请问一个调用动态链接库的问题??救急呀(50分)

  • 主题发起人 主题发起人 tresa
  • 开始时间 开始时间
T

tresa

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在正在做一个采集程序,里面要用到动态链接库,但是此动态链接库没有pascal接口
单元文件,只有c/c++的引入库,不知如何将其转换成pascal的接口文件呢?救急呀!!![:(]
 
参考delphi的api函数的写法吧
 
把.H里面的函数声明改写成pascal
 
把你的c++源码贴出来吧
 
只有几个函数的声明。
Handle_stdcall OpenUA300()
Handle_stdcall CloseUA300(Handle husb)
void_stdcall ssinit(Handle husb)
short int_stdcall ssad(HANDLE husb,short int adch,short int gain)
void_stdcall minit(HANDLE husb,short fch,short chn,short gain)
viod_stdcall readdata(HANDLE husb,short*addat,unsigned short fcode,long leng)
void_stdcall minit2(HANDLE husb,short fch,short chn,unsigned short fcode,short gain)
viod_stdcall readdata2(HANDLE husb,short*addat,long leng)
void_stdcall endread2(HANDLE husb)
UCHAR_stdcall GetVer(HANDLE husb)
void_stdcall dout(HANDLE husb,UCHAR ddat)
UCHAR_stdcall din(HANDLE husb)
 
function OpenUA300:Thandle;stdcall;external '...';
Procedure endread2( husb:HANDLE);stdcall;external '...';

其它的类似翻译,碰到数据结构时定义相应的记录类型。

 
翻译时要注意是传值还是传址:
如 viod_stdcall readdata(HANDLE husb,short*addat,unsigned short fcode,long leng)
其中的short *addat就是传址调用,应当改为var addat:short
 
应该有转换工具,你找找看。
 
多人接受答案了。
 
后退
顶部