原创
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");
}
//然后可以直接使用这个函数了...
呵呵,收藏!
用户1407551 2010-4-8 21:48