已经有了dll对vb的bas模块,如何转为delphi的*.pas模块?(100分)(100分)

  • 主题发起人 主题发起人 yylei
  • 开始时间 开始时间
Y

yylei

Unregistered / Unconfirmed
GUEST, unregistred user!
dll在引用时需要重新声明很多函数和变量,厂家的驱动已经做了vc和vb的dll库,
就是没有delphi的,如何才能生成*.pas模块?
我要用gpib采集卡驱动仪器,已经有了sicl4.dll,sicl4.bas我想要sicl4.pas,
方便调用。请各位大虾指教!!
 
vc的h文件到pas更简单
 
Pipi,已经有scil.h,scil32.lib了,怎么得到pas呢?能不能说详细一点?
 
当然自己转了,你可以贴出几个函数来,学学怎么转,很快你就学会了
 
但是实在是太多太多了,我是不想手工转才问的,scil.h就有42k,有n多函数和变量。
 
那你不是全部函数都要用上的吧,你要用到的函数才转换啊,可能才几个吧?
 
下载: http://vcl.vclxx.org/DELPHI/D32FREE/HEADCONV.ZIP
将 C/C++ 的 DLL 宣告档转换成 Object Pascal 的工具 ( 4.20 版 ),
作者 : Dr. Bob。
-----------------------------------------
你不要指望它能完全转换正确,只是一个辅助,还要手工修改,比如,他是不会加上 external 'xxx.dll'的
 
有道理,用到的确实不多,还是自己转吧
 
发现问题了,请大家帮忙,下面这个函数怎么转换呀:
#include <sicl.h>
int ionerror(proc);
void ( *proc)(id, error);
_INST id;
_int error;
dll中的函数为ionerror,参数为一个函数,id,error为整型参数。我不知道这个proc该怎么定义。
 
type Tproc = procedure(id:_INST;
error:_int);
function ionerror(proc:Tproc):integer;
 
可能是cdecl或者stdcall
 
但是这个Tproc如果想写代码怎么办?比如用messagebox显示错误信息
 
procedure me_proc(id:_INST;
error:_int);
begin
showMessage('abc');
end;

ionerror(my_proc): //其实就是回调函数
 
接受答案了.
 

Similar threads

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