bcb平台的C++dll的静态调用法和动态调用法的方法

动态链接库(DLL)Windows编程常遇到的编程方法,测试时,可能需要进行静态调用法和动态调用法进行测试。下面介绍一下在BCB (C++ Builder下简称BCB)中如何创建使用DLL和一些技巧。

BCB中使用DLL有两种方法:

1.用静态调用法

首先需要在BCB的项目中加入输入接口库(import library),打开工程项目,使用BCB View|Project Manager打开项目列表,向项目中加入接口库(*.lib)

方法:将该文件拷贝到当前目录,使用 implib MyDll.lib MyDll.dll生成,使用 $BCB path/Bin/implib.exe生成 Lib 文件,加入到工程文件中

  其次在头文件中加入接口声明。

  例程序如下:

//define in include file
extern "C" __declspec(dllimport) int __cdecl test();
//use function in main program
int I
I=test();

  注意:

(1)动态链接库调用过程、函数时CALL方式与创建时方式一样不写为__cdecl,其它需要声明。

(2)BCB创建的DLL有对应的输入接口库(import library),如只有DLL而无库时,可用BCBimplib工具产生:implib xxx.lib xxx.dll;另外可用:tlibxxx.lib,xxx.lst产生DLL的内部函数列表,许多Windows的未公开技术就是用这种方法发现的。

dll中用到的变量也自己写,如enum VideoStandard

{

   VIDEO_STANDARD_NTSC,

   VIDEO_STANDARD_PAL

};就不用加vc的头文件了

2.动态调用法

  动态调用法要用Windows API中的LoadLibrary()GetProcAddress()来调入DLL库,指出库中函数位置,这种方法较常见。

  例程序如下:

HINSTANCE dd;
int _stdcall (*ddd)(void);
dd=LoadLibrary("xxx.dll");
ddd=GetProcAddress(dd,"test");
Caption=IntToStr(ddd());
FreeLibrary(dd);

需要使用vc的头文件。方法:#include "IDVP7010BDLL.h"(修改vc的头文件)

project下的directory中添加,头文件的路径。

  三、注意:

  创建DLL时编译链接时注意设置Project Options

Packages标签:去除Builder with runtime packages检查框。

Linker标签:去除Use dynamic RTL检查框。

否则创建的DLL需要Runtime packages or Runtime library

 

 

 

在你的工程中,添加这个lib文件,就象添加已存在的 .cpp 文件一样。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值