原创 BCBuilder 调用VC的DLL

2010-3-29 14:58 4016 8 9 分类: 软件与OS

今天写一个USB的上位机测试程序,用ZLG的DLL,不幸的是BCBuilder不能直接调用VC DLL,网上找了找,办法还真多。


一、使用implib命令


1、用C++Builder的implib工具生成DLL对应的lib文件。如:implib -a xxx.lib xxx.dll(这个-a选项似乎并不影响使用,呵呵,未发现问题,具体原因不懂)。生成lib文件之后,C++Builder便可以使用这个lib文件了。cmd都会用撒,具体做法随便自己了!
2、在.h中用extern "C"修饰VC导出的DLL函数。如:extern "C" __declspec(dllexport) int aFunc(int a),就可以调用了。


 


二、coff2omf.exe


工具程序coff2omf.exe将.lib转换为BCB可用的,然后添加进工程,直接使用VC的头文件就可以了。


此方法未验证。


三、动态调用


这是LLTing提供的方法。


C/C++ code
//Main.h
HINSTANCE hDllInst;//声明Dll句柄
int (__stdcall *sdfm)(unsigned char,unsigned short,long);//声明变量


C/C++ code
//Main.cpp
void __fastcall TForm::FormCreate(TObject *Sender)
{
//框架启动时初始化Dll模块,这里以DllName.dll为例
if(NULL==hDllInst)
hDllInst
=LoadLibrary("DllName.dll");
if (hDllInst)
sdfm
=(int (__stdcall*)(unsigned char,unsigned short,long))GetProcAddress(hDllInst,"sdfm");
}
//然后可以直接使用这个函数了...

 


 


呵呵,收藏!


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户1407551 2010-4-8 21:48

以DDD.dll为例: 1、将DDD.DLL复制到某根目录下(好像要到C++ Builder安装目录下去找implib工具,一起复制到这个目录下。如果你非常熟悉DOS命令操作,也就不用我罗嗦了哈!) 2、运行中进入cmd 3、进入该目录下 4、键入implib DDD.lib DDD.dll,即可生成.lib文件 5、在Project->Add to project下将该lib文件加入到工程中。 6、为工程新建一个.h头文件,内容是: #ifdef __cplusplus extern "C" { #endif int __stdcall XXX(int pipenum,unsigned char *recbuffer,int len,int waittime=-1); int __stdcall CCC(int pipenum,unsigned char *sendbuffer,int len,int waittime=-1); #ifdef __cplusplus } #endif 调用DLL中的两个函数。 7、记住将.DLL文件拷贝到你的工程执行文件目录下。 8、这样,应该就可以使用了。 9、其他的依此类推。
相关推荐阅读
用户1407551 2010-06-08 11:28
Protel 带网络复制和粘贴
今天有人问到为什么复制PCB之后网络就消失了,我说,你没有告诉它要不要复制网络,软件不知道你要干啥。复制之后,Paste Special,keep net name即可。其实,这些个软件应该都是有这种...
用户1407551 2010-04-26 19:52
关于Libero8.5安装和卸载的问题!
似乎半年多以前赶一个项目,用到了Actel的FPGA,安装Libero的时候遇到一些困难,想不到过了这么长时间,还有朋友遇到这个问题。回去看了看帖子,还是决定记下来以免以后又不知所措。 基本上这个问题...
用户1407551 2010-04-26 10:44
『转』上拉电阻和下拉电阻
上拉电阻下拉电阻的总结上拉电阻:[52RD.com]1、当TTL电路驱动COMS电路时,如果TTL电路输出的高电平低于COMS电路的最低高电平(一般为3.5V),这时就需要在TTL的输出端接上拉电阻,...
用户1407551 2010-04-26 10:30
『转』吸电流、拉电流、灌电流、上下拉电阻、高阻态
 吸电流、拉电流输出、灌电流输出拉即泄,主动输出电流,从输出口输出电流;灌即充,被动输入电流,从输出端口流入;吸则是主动吸入电流,从输入端口流入。   吸电流和灌电流就是从芯片外电路通过引脚流入芯片内...
用户1407551 2010-04-23 15:01
『转』分贝
分贝分贝表示一种单位,即两种电或声功率之比或两种电压或电流值或类似声量之比;分贝还是一种测量声音相对响度的单位。  fēnbèi   [decibel]   (1)∶表示两种电或声功率之比的一种单位,...
用户1407551 2010-04-22 11:26
电阻的精度和温漂
1、电阻温度系数(TCR)表示电阻当温度改变1度时,电阻值的相对变化,当温度每升高1℃时,导体电阻的增加值与原来电阻的比值。单位为ppm/℃(即10E(-6)·℃)。定义式如下:TCR=dR/R.dT...
EE直播间
更多
我要评论
1
8
关闭 站长推荐上一条 /3 下一条