VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2292|回复: 5

有关C++BUILDER动态链接库的调用问题

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-27 21:40:01 | 显示全部楼层 |阅读模式
相信这样的问题很多人都提出过,但好象都没有得到一个实质性的答复。

首先:我用VC编写并生成了一个动态链接库XXX.dll,导出的是一个类CXXXClass,
该动态链接库同时提供了XXX.lib和xxx.h头文件

问题:如何在C++Builder里通过静态和动态两种方式调用该动态连接库,希望能够提供简单的实例。
回复

使用道具 举报

0

主题

27

帖子

24.00

积分

新手上路

Rank: 1

积分
24.00
发表于 2020-3-1 12:15:01 | 显示全部楼层
1 这个问题麻烦,因为例子不好给
2 windows自己的dll由bcb调用没有问题
  但是vc编的dll就不一定很顺利。
  
  如果要动态调用vc编写的dll,一般没有问题。
  
  如果要静态调用vc编写的dll,你要用borland的工具创建这个dll的lib。
  这个工具是 Coff20mf.exe,在CB的bin文件夹下。
  假如vc自己生成的lib是vc_dll.lib
  执行Coff20mf.exe vc_dll.lib vc_dll.new
  删除vc_dll.lib 文件
  更改vc_dll.new名字为vc_dll.lib
  将它加入工程,静态使用vc_dll.dll

3 如果还不行,那就是函数别名的问题
  还得使用impdef.exe 生成vc_dll.def
  手工更改  vc_dll.def
  再用implib.exe倒回 vc_dll.lib

前提是你已经掌握使用动态和静态两种方式调用cb自己编写的dll
回复

使用道具 举报

0

主题

14

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-3-5 10:30:02 | 显示全部楼层
静态调用
1 用 BCB 的命令行工具 implib 对 VC 生成的 DLL 进行到出库操作,长生一个 lib 文件
2 将导出的文件添加到 BCB 项目中
3 在 BCB 中申明函数

extern "C" __declspec(dllexport) DWORD __stdcall AR_WNetAddConnection2
(
  LPNETRESOURCE lpNetResource,  // connection details
  LPCTSTR lpPassword,           // password
  LPCTSTR lpUsername,           // user name
  DWORD dwFlags                 // connection options
);
//---------------------------------------------------------------------------

extern "C" __declspec(dllexport) DWORD __stdcall AR_WNetCancelConnection2
(
  LPCTSTR lpName,  // resource name
  DWORD dwFlags,   // connection type
  BOOL fForce      // unconditional disconnect option
);
//---------------------------------------------------------------------------

4 BCB内可以开始调用

Edit3->Text = AR_WNetAddConnection2 (&nr, "u1", "u1", CONNECT_PROMPT);
Edit2->Text = AR_WNetCancelConnection2 ("X:", CONNECT_UPDATE_PROFILE, false);
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-21 11:30:01 | 显示全部楼层
HINSTANCE hInst;
hInst = LoadLibrary("DLLSAMP.DLL");
(FARPROC &)ShowImage=GetProcAddress(hInst,"ShowImage");
ShowImage();
FreeLibrary(hInst);
回复

使用道具 举报

0

主题

16

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-8-28 15:30:01 | 显示全部楼层
支持搂主,收藏
回复

使用道具 举报

0

主题

5

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-28 21:00:02 | 显示全部楼层
有点难度哦
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表