尝试着进行 C++Builder生成的 DLL 之前,回顾一下如何调用一个 C++Builder 创建的 DLL 可能会有给您的操作带来很大帮助,你可以在运行时载入 DLL,而不是使用引入库。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了新绛免费建站欢迎大家使用!
调用 DLL 函数,首先通过选择菜单 Project | Add to Project 的方法,把引入库添加到你的 C++Builder 工程里;其次,在需要调用 DLL 函数的 C++ 源文件里为 DLL 头文件插入 #include 声明;***添加调用 DLL 函数的代码。程序清单 A 和 B 包含了做为测试 DLL 的源代码。注意,测试代码实现了两种不同的调用习惯(__stdcall 和 __cdecl)。
这样帮是有充分的理由的。当你设法调用一个用 Visual C++ 编译的 DLL 时,大多让你头疼的事情都是由于处理不同的调用习惯产生的。还要注意一点,有一个函数,它没有明确列出使用的调用习惯。这个未知函数作为不列出调用习惯的 DLL 函数的标识。
- #ifdef __cplusplus
- extern "C" {
- #endif
- #ifdef _BUILD_DLL_
- #define FUNCTION __declspec(dllexport)
- #else
- #define FUNCTION __declspec(dllimport)
- #endif
- FUNCTION int __stdcall StdCallFunction(int Value);
- FUNCTION int __cdecl CdeclFunction (int Value);
- FUNCTION int UnknownFunction(int Value);
- #ifdef __cplusplus
- }
- #endif
- //------------------------------------------
- //Listing B: DLL.C
- #define _BUILD_DLL_
- #include "dll.h"
- FUNCTION int __stdcall StdCallFunction(int Value)
- {
- return Value + 1;
- }
- FUNCTION int __cdecl CdeclFunction(int Value)
- {
- return Value + 2;
- }
- FUNCTION int UnknownFunction(int Value)
- {
- return Value;
- }
从清单 A 和 B 创建测试 DLL,打开 C++Builder,选择菜单 File | New 调出 Object Repository。选择 DLL 图标,单击 OK 按钮。C++Builder 会创建一个新的工程,带有一个源文件。这个文件包含一个 DLL 的入口函数和一些 include 声明。现在选择 File | New Unit。
保存新的单元为 DLL.CPP。从清单 A 拷贝粘贴文本插入头文件 DLL.H。从清单 B 拷保存工程为 BCBDLL.BPR。接下来,编译工程,看看生成的文件。C++Builder 生成了一个 DLL 和以 .LIB 为扩展名的引入库。
这时,你有了在 C++Builder 里调用 DLL 所需的三个元素:DLL 本身,带有函数原型的头文件,用来连接的引入库。现在我们需要一个用来调用 DLL 函数的 C++Builder 工程。在 C++Builder 里创建一个新的工程,保存到你的硬盘上。#t#
从 DLL 工程目录里拷贝 DLL、引入库、DLL.H 头文件到新的目录。其次,在主单元里添加 #include 声明,包含 DLL.H。***,添加调用 DLL 函数的代码。清单 C 列出了调用由清单 A 和 B 生成的 DLL 中每个函数的代码。
标题名称:如何实现C++Builder调用DLL
分享URL:http://www.csdahua.cn/qtweb/news21/295921.html
成都网站优化推广公司_创新互联,为您提供企业建站、网站建设、网站设计、网站制作、服务器托管、网站营销
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网