新浪微博
腾讯微博
会员列表
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
帮助
下拉
用户名
电子邮箱
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
首页
论坛
Qt下载
作品展
群组
个人中心
捐赠、管理与开发
邮件订阅
帖子
文章
日志
用户
版块
群组
帖子
搜索
QTCN开发网
>
Qt基础编程
>
【提问】qt 可以调用纯VC编译的DLL库吗
发帖
回复
返回列表
新帖
13223
阅读
9
回复
【提问】qt 可以调用纯VC编译的DLL库吗
[复制链接]
上一主题
下一主题
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
加关注
发消息
只看楼主
倒序阅读
楼主
发表于: 2006-02-28
【提问】qt 可以调用纯VC编译的DLL库吗
我想用qt做游戏客户端, 但已经有一套通讯架构了,也就是客户端的通讯已经有一套用mfc类做的通讯dll, 我的QT客户端程序可以很方便的调用到原来已经做好的mfc的dll通讯库吗.
[ 此贴被XChinux在2006-02-28 14:30重新编辑 ]
共
条评分
回复
举报
分享到
淘江湖
新浪
QQ微博
QQ空间
开心
人人
豆瓣
网易微博
百度
鲜果
白社会
飞信
离线
cocalele
UID:4085
注册时间
2006-02-27
最后登录
2006-09-18
在线时间
1小时
发帖
22
搜Ta的帖子
精华
0
金钱
188
威望
20
贡献值
0
好评度
18
访问TA的空间
加好友
用道具
新手上路
加关注
发消息
只看该作者
1楼
发表于: 2006-03-01
可以啊,LoadLibrary,不过这样丧失了平台无关性。看你的说法你们有用VC做的,已经不是平台无关的了。尽管用吧 :)
共
条评分
回复
举报
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
2楼
发表于: 2006-03-01
LoadLibrary ?楼上的是说QLibrary 这个类来装入dll实现的吗?
实际的环境是这样的,因为原来已经有做一套通讯的库在windows下,使用的都是winsock 类 ,互斥 类,线程类都是 mfc的,的如果要改成QSocket等那些类来换原来已经做好的,工作量就大了,实际上我们原来那套通讯库在linux 下也实现了客户端,函数名和windows是一样的。所以linux下的库我也可以做成动态库来给qt调用。所以原来那一套通讯的架构如果可以在qt客户端使用我就不打算改了. 我看qt3.3文档怎么说qt只能装入与平台无关的动态库?(不知道是不是翻译有问题),如果是只能装入平台无关的,那我原来的库有用mfc的那些类,肯定是相关平台的。
另外如果可以实现,调用的时候有没有什么要注意的呀,楼主有没有什么SAMPLE呀,刚刚接触QT还不是很熟悉,希望多多指教。
目前的状态就是我有一整套 UNIX (服务器)---windows(linux) 客户端的通讯架构的东西,现在这套东西我想利用,前台游戏界面我想用qt来开发。 至于qt的跨平台我倒不需要考虑那么多,因为我要开发的客户端也主要在WINDOWS下使用。
共
条评分
回复
举报
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
3楼
发表于: 2006-03-01
再问一下 LoadLibrary ?是指win32的LoadLibrary函数吗, 如果是qt里面怎么调用这个函数呢?
LoadLibrary 可以显示连接dll就不需要Lib导入文件了, QLibrary 类加载一个编译的dll,需要用到lib文件吗?
共
条评分
回复
举报
在线
XChinux
UID:2
注册时间
2004-11-08
最后登录
2025-06-21
在线时间
7022小时
发帖
11243
搜Ta的帖子
精华
61
金钱
148932
威望
9968
贡献值
702
好评度
8190
访问TA的空间
加好友
用道具
总版主
加关注
发消息
只看该作者
4楼
发表于: 2006-03-01
这个QLibrary对应的就是Windows下的LoadLibrary。
不过,看你的帖子里说的,你原来的用MFC做的通讯库是以哪种形式给出的?没有.lib么?可否以静态加载的方式使用这个DLL?不能这样使用的话再使用动态加载。但动态加载需要DLL必须以一定格式输出,比如extern "C", dllexport macro等。
即,你能够在普通的C++程序中使用WIN32 API函数LoadLibrary()来加载的话,那才能使用QLibrary来加载。
另外,疑惑的是,为什么用MFC来做服务器端的通讯库?既然是WINDOWS和UNIX上都用的,为什么要写两套代码来分别维护?
共
条评分
二笔 openSUSE Vim N9 BB10
XChinux@163.com
网易博客
腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
回复
举报
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
5楼
发表于: 2006-03-01
我原来的库我没有真正独立出来做DLL,刚刚我才把原来的通讯代码独立出来编译成DLL了,编译出来后是带LIB 和DLL两个文件的,我就不明白,QT要加载我刚刚编译的DLL库是不是那个LIB文件没什么用呢?我使用了 extern "C" __declspec(dllexport) 修饰DLL文件里我要使用的函数,
你能够在普通的C++程序中使用WIN32 API函数LoadLibrary()来加载的话? 这么说qt程序里怎么使用WIN32 API函数LoadLibrary()函数呢?
我原来的服务器程序是基于UNIX的,客户端有LINUX的也有WINDOWS(VC开发)的,而且它的通讯架构已经是很稳定的了。现在我就是想用原来的那一套系统的通讯架构 现在新要开发游戏客户端用qt来做,所以就会有上述的疑问。
那现在qt可以使用我原来的基于MFC的通讯库吗?
我现在还是不清楚qt里怎么调用WIN32 API函数LoadLibrary()来加载dll?
共
条评分
回复
举报
在线
XChinux
UID:2
注册时间
2004-11-08
最后登录
2025-06-21
在线时间
7022小时
发帖
11243
搜Ta的帖子
精华
61
金钱
148932
威望
9968
贡献值
702
好评度
8190
访问TA的空间
加好友
用道具
总版主
加关注
发消息
只看该作者
6楼
发表于: 2006-03-01
首先,Qt只是一套C++库。QT程序就是C++程序。你的东西只要C++能做,就能加进去。
我没有研究过,不过我猜测QLibrary实际上就是调用的LoadLibrary()这个WIN32 API函数。
你想用哪个都可以不过我建议你既然使用QT了就使用QLibrary来调用。如果你要使用LoadLibrary()还要加相应的头文件甚至还要加链接库。
还有,想问一句,你的这个DLL中到底用到没用到MFC???(使用VC写的,并不等于就用到MFC)
共
条评分
二笔 openSUSE Vim N9 BB10
XChinux@163.com
网易博客
腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
回复
举报
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
7楼
发表于: 2006-03-01
编译出来的通讯DLL库,很肯定有用到MFC的类, 互斥类 信号类 SOCKET类都谁MFC级别的,不是 WIN32级别的,
昨天再看了看VC生成 dll,可以生成3种 DLL,一种是WIN32 console 的DLL, 一种是正规MFC DLL 一种是扩展 MFC DLL 我现在生成的是正规MFC DLL 类型的通讯库.这有关系吗?
共
条评分
回复
举报
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
8楼
发表于: 2006-03-03
今天试了了一下,不行呀,
QLibrary libtest("mfcdll");
if(libtest.isLibrary("mfcdll"))
qDebug() << "load dll failure ";
else
return ;
好象总是装不进我的通讯动态库mfcdll呀。谁有什么招没有,我编译的DLL是正规的MFC动态库。
共
条评分
回复
举报
离线
18283848
UID:3622
注册时间
2006-02-10
最后登录
2018-01-23
在线时间
1小时
发帖
7
搜Ta的帖子
精华
0
金钱
11
威望
2
贡献值
0
好评度
0
访问TA的空间
加好友
用道具
禁止发言
加关注
发消息
只看该作者
9楼
发表于: 2006-03-03
搞定了,可以加载用MFC写的动态库 ,
就用 QLibrary ,
使用 extern "C" __declspec(dllexport) 修饰DLL文件里要使用的函数就OK了.
共
条评分
回复
举报
发帖
回复
返回列表
http://www.qtcn.org/bbs
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
关闭
补充发布信息
验证码:
发 布
隐藏
快速跳转
站务及资讯
网站公告
新闻资讯
Qt官方发布
网站管理
Qt应用及资源
Qt 作品展
Qt代码秀
Qt应用版
Qt技术讨论区
Qt安装与发布
Qt中文处理
Qt基础编程
Qt QML开发
Qt嵌入式开发
Qt移动平台开发
其它技术开发讨论区
Qt图书专区
《C++ GUI Qt 4编程》(第2版)专栏
《Qt高级编程》专栏
《零基础学Qt4编程》专栏
《Qt设计模式》(第2版) 图书专栏
Python Qt GUI快速编程
Qt项目开发区
天池项目
Qt开放平台开发库
机械CAD
扇贝词典
非活跃项目区
社区中心
帖子回收站(Trash)
招聘、求职、供求、广告等
休闲娱乐
关闭
关闭
选中
1
篇
全选