社区
C++ 语言
帖子详情
win32 dll调用MFC dll的问题.
yongziqd
2011-07-12 10:30:18
前提: 有个第三方dll,是用MFC编译的.我自己用win32编译了一个dll,里面调用这个第三方dll.
问题: LoadLibrary没有问题,用GetProcAddress获取函数地址没有问题,调用函数的时候出错.
如果调用的函数没有参数没有问题,如果调用的函数有参数,则会出错.
请教高手,这有可能是哪个地方出了问题?
...全文
495
39
打赏
收藏
win32 dll调用MFC dll的问题.
前提: 有个第三方dll,是用MFC编译的.我自己用win32编译了一个dll,里面调用这个第三方dll. 问题: LoadLibrary没有问题,用GetProcAddress获取函数地址没有问题,调用函数的时候出错. 如果调用的函数没有参数没有问题,如果调用的函数有参数,则会出错. 请教高手,这有可能是哪个地方出了问题?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
39 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vrace
2011-07-13
打赏
举报
回复
似乎有参数的函数导出的时候被重命名了, LZ 用 Depends 看一看
thinkboy234
2011-07-13
打赏
举报
回复
继续顶起.
yongziqd
2011-07-13
打赏
举报
回复
继续顶起.
yongziqd
2011-07-13
打赏
举报
回复
多谢各位了,我最终还是建了个MFC的dll来调用这个dll了.
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 11 楼 ouwarmth 的回复:]
引用 8 楼 yongziqd 的回复:
引用 6 楼 ouyh12345 的回复:
调用约定是否一致?
C++默认的应该都是_cdecl吧...
把调用约定改成_stdcall试下,在你的dll里边的函数名前都加上_stdcall,如:
int _stdcall test()
{
....
return 0;
}
[/Quote]补充一点,我新建了个MFC的exe程序,调用MFC的dll,在release状态下没有问题.
在debug状态下,调用dll里面的带参数的函数,也存在和win32同样的问题.
luciferisnotsatan
2011-07-12
打赏
举报
回复
http://www.codeguru.com/cpp/w-p/dll/importexportissues/article.php/c123/
调用C++风格的dll
wkq87
2011-07-12
打赏
举报
回复
帮顶吧,一般都是MFC里面调用DLL,所以没出现类似问题
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 11 楼 ouwarmth 的回复:]
引用 8 楼 yongziqd 的回复:
引用 6 楼 ouyh12345 的回复:
调用约定是否一致?
C++默认的应该都是_cdecl吧...
把调用约定改成_stdcall试下,在你的dll里边的函数名前都加上_stdcall,如:
int _stdcall test()
{
....
return 0;
}
[/Quote]也不行
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 10 楼 dizuo 的回复:]
用dumpbin -exports/depends看看里面有哪些函数。。。
[/Quote]里面的函数都知道...
ouwarmth
2011-07-12
打赏
举报
回复
[Quote=引用 8 楼 yongziqd 的回复:]
引用 6 楼 ouyh12345 的回复:
调用约定是否一致?
C++默认的应该都是_cdecl吧...
[/Quote]
把调用约定改成_stdcall试下,在你的dll里边的函数名前都加上_stdcall,如:
int _stdcall test()
{
....
return 0;
}
ryfdizuo
2011-07-12
打赏
举报
回复
用dumpbin -exports/depends看看里面有哪些函数。。。
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 7 楼 ouyh12345 的回复:]
参数有类的对象吗?跨模块时,传类的对象是不安全的
[/Quote]就传递的普通类型,int,char* 之类的.
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 6 楼 ouyh12345 的回复:]
调用约定是否一致?
[/Quote]C++默认的应该都是_cdecl吧...
ouyh12345
2011-07-12
打赏
举报
回复
参数有类的对象吗?跨模块时,传类的对象是不安全的
ouyh12345
2011-07-12
打赏
举报
回复
调用约定是否一致?
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 4 楼 dizuo 的回复:]
mfc编译的dll木有头文件吗?
[/Quote]没有头文件.只是一个动态库,还有一个说明文件,说明里面的函数定义.
ryfdizuo
2011-07-12
打赏
举报
回复
mfc编译的dll木有头文件吗?
yongziqd
2011-07-12
打赏
举报
回复
[Quote=引用 1 楼 atzai 的回复:]
MFC中的函数可能需要MFC库支持,你的win32程序默认不会加载MFC库。
[/Quote]我的win32程序加载没有问题,只是调用里面函数的时候出问题.
如果函数没有参数,调用正确.如果函数有参数,调用错误.
jackyjkchen
2011-07-12
打赏
举报
回复
MFC的dll不是标准格式,导入方式和普通的纯C的dll不一样吧,我尽量避免mfcdll,没用过
atzai
2011-07-12
打赏
举报
回复
MFC中的函数可能需要MFC库支持,你的win32程序默认不会加载MFC库。
加载更多回复(19)
计算机中丢失
mfc
100d.
dll
,
mfc
100d.
dll
mfc
100d.
dll
文件是一种微软系统重要的
dll
文件,如果你的电脑显示没有找到
mfc
100d.
dll
文件或者丢失
mfc
100d.
dll
文件等信息,你可以下载
mfc
100d.
dll
文件来解决上述
问题
,有需要的朋友欢迎下载使用!
dll
文件简介:
DLL
...
win7计算机中丢失
mfc
120,
mfc
120.
dll
64位
mfc
120.
dll
是系统必备的一个正常组件,在办公软件、游戏运行的时候经常会提示“
mfc
120.
dll
没有被指定windows上运行”或“计算机中丢失
mfc
120.
dll
"等
问题
,重新复制一个
mfc
120.
dll
文件粘贴到指定目录就可以了。...
win32
dll
和
MFC
dll
的区别
Win32
dll
不能使用
MFC
的类库, 也就是不能使用
MFC
所提供的功能
MFC
DLL
又分2种 1. 标准
MFC
DLL
可以使用
MFC
类库 但是不能输出类 2. 扩展
MFC
DLL
可以输出类 ================...
三种
DLL
(
Win32
DLL
,
MFC
常规
DLL
和
MFC
拓展
DLL
)的简单学习总结
学习了三种动态链接库的基本知识,分别是
Win32
DLL
,
MFC
常规
DLL
和
MFC
拓展
DLL
。
Win32
DLL
使用的是
Win32
的API实现的,只能导出函数,能被各种应用程序
调用
,适用范围最广。
MFC
常规
DLL
是适用
MFC
创建的,就像
MFC
...
因为计算机中丢失
mfc
100ud.
dll
,
mfc
100ud.
dll
mfc
100ud.
dll
文件是一种微软系统重要的
dll
文件,如果你的电脑显示没有找到
mfc
100ud.
dll
文件文件或者丢失
mfc
100ud.
dll
文件文件等信息,你可以下载
mfc
100ud.
dll
文件文件文件来解决上述
问题
,有需要的朋友欢迎下载使用...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章