vc创建DLL,C++BUILDER调用过程
其实,在实际的工作中这个事我做了N遍,可每次用完后忘得一干二净(我这人记性不好),每次想做一个DLL都得重新上网找例子,重新调试,费时费力。这次狠下决心要记下全过程:
一、在VC中建立一个DLL工程,名为DLLABC,其他按照默认下一步就OK了。
二、在头文件DLLABC.H中添加声明:
extern "C"
{
int EXPORT _stdcall add(int x,int y);
}
add为函数名,完成X+Y的运算。
三、在DllAbc.cpp文件中添加函数内容:
extern "C"
int EXPORT _stdcall add(int x,int y)//一个完成加法运算的函数
{
return x+y;
}
四、在文件DllAbc.def中添加: add 和函数名完全一样!这个不能漏,我在此花了不少时间。
五、VC中配置为release方式,然后生成DLL文件。
六、所生成的DLL文件在C++BUILDER中还不能直接使用,要生成LIB文件,虽然在VC中也生成了LIB文件,但与C++BUILDER格式不一样,不能用。要用一个叫 implib.exe的工具转换。该文件安接装了C++BUILDER的机器一般都会有,你可以搜索一下,如果找不到上网下载一个。
七、将生成的DLLABC.DLL和IMPLIB.EXE文件拷到同一个目录下,如C:/,这样好在DOS中操作。
八、进入DOS(这个相信大家都会),在C:/中输入:
IMPLIB DLLABC.LIB DLLABC.DLL 回车
生成的DLLABC.LIB就是我们要的。
九、将三个文件:DLLABC.LIB(IMPLIB生成的)、DLLABC.DLL、DLLABC.H文件拷到C++BUILDER项目文件夹中。新建C++BUILDER工程,并在窗体中添加一个按钮控件BUTTON1和一个文本控件EDIT1, 在C++BUILDER工程中加载DLLABC.LIB:
十、在项目的头文件unit.h 中添加dllabc.h
十一、生成后有一个错:出现在DLLABC.H。
想了一下,原来这是VC的头文件,费代码太多(这是我不喜欢VC的原因),在CBC中不能用,删除后,只留下声明:
十二、重新生成,不出错了,在BUTTON1中添加代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a;
a=add(2,4) ;
Edit1->Text=a;
}
生成可执行文件,运行OK。