社区
C++ 语言
帖子详情
win32 dll调用MFC dll的问题.
yongziqd
2011-07-12 10:30:18
前提: 有个第三方dll,是用MFC编译的.我自己用win32编译了一个dll,里面调用这个第三方dll.
问题: LoadLibrary没有问题,用GetProcAddress获取函数地址没有问题,调用函数的时候出错.
如果调用的函数没有参数没有问题,如果调用的函数有参数,则会出错.
请教高手,这有可能是哪个地方出了问题?
...全文
480
39
打赏
收藏
win32 dll调用MFC dll的问题.
前提: 有个第三方dll,是用MFC编译的.我自己用win32编译了一个dll,里面调用这个第三方dll. 问题: LoadLibrary没有问题,用GetProcAddress获取函数地址没有问题,调用函数的时候出错. 如果调用的函数没有参数没有问题,如果调用的函数有参数,则会出错. 请教高手,这有可能是哪个地方出了问题?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
文件粘贴到指定目录就可以了。...
计算机丢失
mfc
140
dll
,
mfc
140d.
dll
当用户的电脑弹出提示“无法找到
mfc
140d.
dll
”或“计算机缺少
mfc
140d.
dll
”等错误
问题
,请下载本站为你提供的
dll
文件,使用它可以帮助用户解决上述
问题
。基本简介
DLL
(Dynamic Link Library)文件为动态链接库文件,又...
因为计算机中丢失
mfc
100ud.
dll
,
mfc
100ud.
dll
mfc
100ud.
dll
文件是一种微软系统重要的
dll
文件,如果你的电脑显示没有找到
mfc
100ud.
dll
文件文件或者丢失
mfc
100ud.
dll
文件文件等信息,你可以下载
mfc
100ud.
dll
文件文件文件来解决上述
问题
,有需要的朋友欢迎下载使用...
win32
dll
和
MFC
dll
的区别
Win32
dll
不能使用
MFC
的类库, 也就是不能使用
MFC
所提供的功能
MFC
DLL
又分2种 1. 标准
MFC
DLL
可以使用
MFC
类库 但是不能输出类 2. 扩展
MFC
DLL
可以输出类 ================...
C++ 语言
64,647
社区成员
250,496
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章