C++builder中创建并调用DLL

  • 格式:pdf
  • 大小:351.95 KB
  • 文档页数:5

C++builder 6.0创建、调用DLL并脱离BCB环境运行

Nathanielwen

1、按照以下顺序创建一个dll工程:

文件->新建->其他->DLL Wizard,单击确定后,source type选择C++,单击ok。接下

来大概有半页多的注释,其中强调的是一些关于dll的注意事项,在附录I中会具体说明。

目前为止我们只需要做的只是在文件的最末尾,附上自己的代码。

注释:这是一个C风格(extern "C")的,DLL导出(dllexport)函数,并使用WIN32 API

的标准(__stdcall)调用方式,函数的返回值类型为int型,包含两个int型的参数变量。

到此为止,所有的工作都完成了,单击运行,系统提示如下:

在项目所在的文件夹下,会生成一个dll文件和一个lib文件。说明已经完成了50%的工作

了~ 2、验证dll是否能顺利调用

新建一个工程,在窗口中添加一个button控件(查看->组建列表)在h文件中插入一行,

如下: 注意,这一句和之前的唯一区别在于现在但从dllexport改成了dllimport 接下来双击Button1,编辑Button1Click函数如下:

好了,完成90%,最后拷贝之前生成的dll和lib文件至当前工程的目录下,同时通过:查

看->工程管理器(也可以使用快捷键Ctrl+Alt+F11)

单击Project1.exe,右键添加,选择文件类型->库文件,并将之前生成的lib包含进来

现在只需要单击运行,然后,单击Button1,就可以使用DLL了,运行如下:

3、将程序发布到未安装C++builder环境的电脑上

如果将生成的exe和dll拷贝到另一台机子上,运行时会提示出错

我们选择静态编译的方式:工程->选项(或Shift+Ctrl+F11)

选择Linker,去掉Use dynamic RTL之前的√

选择组件包,去掉和运行时组件包一起编译的√

选择Compiler,单击Release,并重新运行。

如果我们建立的工程不包含dll文件,之前的三步就可以使exe脱离BCB6.0环境了,但是

由于我们现在的这个程序需要调用dll文件,因此系统还会报错

为此我们进入BCB的安装目录,F:\Program Files\Borland\CBuilder6\Bin,拷贝一份

CC3260MT.dll到目标电脑即可。

在Win xp虚拟机下运行成功,截图如下:

附录I

之前一直在VS下做dll,今天第一次用C++builder,所以,过程略有坎坷,本文的方

法都是从网上摘录并整理的,如果有侵权还望海涵。

另附上dll导入函数的注意点。

创建动态链接库时,如果想你创建的动态链接库并非只用于Borland开发工具,那么

就需要遵循发下规则:

(1).在导出函数的返回值和参数中不要使用Borland特有的数据类型和结构体,如

AnsiString之类,请使用C/C++标准的数据类型或使用 C/C++标准数据类型定义的结构

体(特别不要使用String数据类型,BCB DLL向导生成的DLL工程文件中大篇幅的说明就

是对此的说明,请自己查阅);

(2).请使用extern "C"命名约定,这样,生成的DLL中的导出函数,就不会使用C++

的命名约定,而是使用的C命名约定,即导出函数不会名字分解,而是和你定义的函数相

同;

(3).导出函数请使用WIN32 API的调用方式__stdcall(即WINAPI)或VC与

BorlandC++的调用约定__cdecl,不要使用Borland特有的__fastcall调用约定,否则只有

Borland开发工具才可以使用这些动态链接库;