社区
Windows SDK/API
帖子详情
DLL使用问题????已经问过一次了,不够分再加!
moncat
2003-09-29 10:45:46
人家提供给我一个VC下的编写的DLL、lib及头文件(lib无法在BCB下连接成功),此DLL是导出一个类。
现在要用BCB使用这个DLL,必须用LoadLibrary来引入DLL,通过这个DLL来实例化一个头文件中定义的类对象。
已知条件: DLL,lib(VC下),*.h(类定义)
问题: 我将如何使用通过DLL使用GetProcAddress()来实例化一个对象?
...全文
49
19
打赏
收藏
DLL使用问题????已经问过一次了,不够分再加!
人家提供给我一个VC下的编写的DLL、lib及头文件(lib无法在BCB下连接成功),此DLL是导出一个类。 现在要用BCB使用这个DLL,必须用LoadLibrary来引入DLL,通过这个DLL来实例化一个头文件中定义的类对象。 已知条件: DLL,lib(VC下),*.h(类定义) 问题: 我将如何使用通过DLL使用GetProcAddress()来实例化一个对象?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pbMaster
2003-09-30
打赏
举报
回复
卸载:
if (hLibHandle)
FreeLibrary(hLibHandle);
pbMaster
2003-09-30
打赏
举报
回复
定义:
long __stdcall (*LoadDRV)();
HANDLE parentHwnd;
初始化:
hLibHandle=LoadLibrary("DLLFILE.dll");
if (hLibHandle)
{
LoadDRV=(long __stdcall (*)())GetProcAddress(hLibHandle,"LoadDRV");
}
调用:
long i=(*LoadDRV)();
moncat
2003-09-30
打赏
举报
回复
悲哀!虽然没解决,看来我也是该结贴了?
fatwave
2003-09-30
打赏
举报
回复
学习学习
Behard
2003-09-30
打赏
举报
回复
这个问题确实是问过很多次,而且很多人也是提出了一些解决方法
但是我曾试了一个星期,都是没有成功
BCB 调用 VC 的 DLL,我实在是不知道使用导出类的 DLL,别的都是好说
moncat
2003-09-30
打赏
举报
回复
vc下面有IMPLIB这个工具吗?
我就是用bc下的IMPLIB工具生成的lib文件啊,而且还试了加和没加-a的时候的参数,但是就是不能用啊
linker的时候,出现所有成员函数没有实现的错误
[Linker Error!]Unresolved external...
[Linker Error!]Unresolved external...
[Linker Error!]Unresolved external...
[Linker Error!]Unresolved external...
...
moncat
2003-09-30
打赏
举报
回复
vc下面有IMPLIB这个工具吗?
我就是用bc下的IMPLIB工具生成的lib文件啊,而且还试了加和没加-a的时候的参数,但是就是不能用啊
linker的时候,出现所有成员函数没有实现的错误
[Linker Error!]Unresolved external...
[Linker Error!]Unresolved external...
[Linker Error!]Unresolved external...
[Linker Error!]Unresolved external...
...
hongliqiu
2003-09-30
打赏
举报
回复
这种问题,以前有很多人问过的,搜索一下以前的帖子吧。
kingcaiyao
2003-09-30
打赏
举报
回复
iBuilder已经说得很清楚了,出现你所说的链接错误是因为你的LIB文件格式不对,只要用BCB自带的implib来进行转换就可以了。
你有了LIB文件,再加上头文件,可直接将LIB文件加入到你的项目中,然后在你的项目中包含这个头文件,直接采用静态调用就可以了。
iBuilder
2003-09-30
打赏
举报
回复
因为VC的LIB用的是COFF格式的LIB档,而CB用的是OMF格式的LIB,所以你用VC的IMPLIB生成的LIB是不能在CB中用的,试一下用CB自带的INPLIB,在CBuilderX\Bin\下,(X是版本号)
Behard
2003-09-30
打赏
举报
回复
要不你使用 VC 重新封装为导出函数即可
Behard
2003-09-30
打赏
举报
回复
我刚才又试了一次,还是不行
我把我测试的结果告诉你:(自己衡量怎么作吧)
1. 在 VC 中不使用 extern "C" 修饰时导出函数的名字都是以 ?开头的
而在 BCB 的 def 文件中不支持 ?符号的
再说了导出类总不能使用 extern "C" 吧!
这样的话,通过增加 def 文件连接 VC DLL 的方式就不行了
2. 对于 ? 开头的函数名,只能使用动态连接
但是导出类只能是使用静态连接的
3. 你可以通过修改 VC 中的 def 文件来试一试
^_^ 不过我不知道怎么做(很少使用 VC)
4. 提醒一下,VC 中默认是 __cdecl 方式调用的,BCB 是 __stdcall
但是我不知道怎么修改导出类的调用方式
5. 如果是我,就导出函数算了
不过如果是没有 MFC 的话,直接叫对方使用 BCB 编译更简单的
qiuafa
2003-09-30
打赏
举报
回复
up
moncat
2003-09-30
打赏
举报
回复
implib.exe -a *.lib *.dll 生成的lib也无法使用!!为什么?
linker的时候,出现所有成员函数没有实现的错误---[Linker Error!]Unresolved external...
moncat
2003-09-30
打赏
举报
回复
那请问能不能生成一个bc下能用的lib文件?????????如何生成?tlib或tlibimp工具如何生成?
rookieme
2003-09-30
打赏
举报
回复
不能用此lib,就当没有这个lib, VC下的LIB与BCB的lib 不能通用的,只能加载DLL
iBuilder
2003-09-30
打赏
举报
回复
VC下是有这个工具的,你还把源代码粘出来吧,E-MIAL给我,让我试一下吧ibuilder@163.com
CB调用VC的DLL是一定可以的,不过象你所说的是实例化一个类对象就不太清楚
moncat
2003-09-29
打赏
举报
回复
是编译成功,但是Libker出错:
[Linker Error] 'OUTPUT\CMOAPI.LIB' contains invalid OMF record, type 0x21 (possibly COFF)
zihan
2003-09-29
打赏
举报
回复
你可以直接把lib文件加到工程里面去直接引用!!lib无法在BCB下连接成功指的是不能够加进去吗?
简单的认识
dll
授权加密
项目要提供一个SDK(Software Development Kit),经常可以在百度/讯飞的AI平台看到提供SDK接口的,但是为了防止提供的SDK被窃取源码等等,一般会对这东西进行授权加密 参考: +如何给
dll
文件加密 .NET
DLL
保护...
Unity数据加密丨(二)
dll
文件加密
本节目标,加密
dll
文件,供Unity
使用
。 加密思路:
dll
文件因为要给Unity
使用
,因此不能加密/混淆 public变量/方法。如果混淆了public变量/方法,Unity就不能识别到了。因此我们只混淆私有变量/方法,达到加密...
c#
dll
文件加密
.net 文件加密,
dll
编译后文件的二次加工,reactor时间限制 解除
使用
QT+MSVC编写32/64位动态库
dll
的
问题
记录
前言这是继上一篇
使用
QT+MinGW编写动态库
dll
供VC或VB调用的一些
问题
记录。 先说下上篇的一个留疑,
使用
MSVC编译出来的库才有lib+
dll
两个文件,MinGW只有
DLL
。MinGW版的QT只有32位的,想要64位的只能用MSVC了。 ...
unity打包实现对
dll
加密
Unity打包加密,Unity实现对打包后的
DLL
进行加密。
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章