社区
进程/线程/DLL
帖子详情
dll调用中release版本和debug版本的问题!
handwolf
2004-10-10 03:08:34
我的程序调用一个自己写的dll.debug版本一切都没有问题,但是release版本运行就死,发现调用ddl中类成员函数都出问题,是什么问题呀???大家帮帮忙,分不够可以加!
...全文
312
16
打赏
收藏
dll调用中release版本和debug版本的问题!
我的程序调用一个自己写的dll.debug版本一切都没有问题,但是release版本运行就死,发现调用ddl中类成员函数都出问题,是什么问题呀???大家帮帮忙,分不够可以加!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dodont
2004-10-11
打赏
举报
回复
先rebuild all,再理一下类的关系,确定一下到底应该调用哪一个虚函数。
handwolf
2004-10-11
打赏
举报
回复
没人解决得了吗?还是没人愿意搭救????
自己再up
handwolf
2004-10-11
打赏
举报
回复
自己无助地up一下!
help me !
nwpulipeng
2004-10-11
打赏
举报
回复
帮顶混分
handwolf
2004-10-10
打赏
举报
回复
我调用dll中CPolygon类的一个虚拟成员函数A,但是调试进入的是另外一个虚拟函数,这是为什么呀?郁闷ing...
请高手解释一下
handwolf
2004-10-10
打赏
举报
回复
调用CPolygon()的时候能调试进该构造函数,
但是调用CreatGraph(..)的时候就不可以了,是什么原因呢?
难道是因为后者是虚函数????
handwolf
2004-10-10
打赏
举报
回复
调试了一下!
First-chance exception in GS.exe (NTDLL.dll): 0xc00000008 Invalid handle
有没有人遇见过呀,急!
south2000
2004-10-10
打赏
举报
回复
你要把你的VC打上补丁
我以前也遇到过debug可以,release就不行。
wenohuang
2004-10-10
打赏
举报
回复
把引用换成指针看看,
handwolf
2004-10-10
打赏
举报
回复
up
handwolf
2004-10-10
打赏
举报
回复
根本就不进入我调用的函数,我用AfxMessageBox试也是一样的!
不进入就无法调试呀
flyelf
2004-10-10
打赏
举报
回复
那就跟踪一下release版本
handwolf
2004-10-10
打赏
举报
回复
release版本和debug版本是分开的不会错!up
SetpByStep
2004-10-10
打赏
举报
回复
我以前碰到过,一个系统,debug和release版的不能混合用。只有所有dll和exe的版本均为debug或者均为release的时候才能正常使用。
handwolf
2004-10-10
打赏
举报
回复
dll中:
class AFX_EXT_CLASS CShape : public CObject
{
CShape(){}
....
virtual void CreatGraph(CArray<float,float>& flArrayX,CArray<float,float>& flArrayY)
{
AfxMessageBox("CShape::CreatGraph");
}
...
}
class AFX_EXT_CLASS CPolygon : public CShape
{
CPolygon :CShape(){}
....
virtual void CreatGraph(CArray<float,float>& flArrayX,CArray<float,float>& flArrayY)
{
AfxMessageBox("CPolygon ::CreatGraph");
}
...
}
exe中:
CArray<float,float> m_ArrDataX;
CArray<float,float> m_ArrDataY;
...
CShape* m_pCurrentShape=new CPolygon();//relese版本在这一步就不能进入CPolygon构造函数
m_pCurrentShape->CreatGraph(m_flArrayX,m_flArrayY);//这里也不行
帮忙看看,release版本有什么需要限制的呢?初值我都赋过了
DentistryDoctor
2004-10-10
打赏
举报
回复
这个只有实际看了你的代码才行。
【C++】
Dll
的
Release
版本
和
Debug
版本
不能混用
如果
debug
版本
的exe,使用了
release
版本
的
dll
,则有可能导致内存错误。因此,如果
dll
使用了std库,则必须保证
dll
和exe是使用相同规则编译出来的。C语言确实有很多比较麻烦的地方,大家只能靠经验去解决。
DLL
的灾难 ---
DEBUG
与
RELEASE
版本
不能交叉
调用
让我们先看一段引文,再来进行心灵的探索: ...When your exe APP was built
Debug
Mode, your
Dll
must be
Debug
mode. When your exe APP was built
Release
Mode, your
Dll
must be
Release
mode. If ...
[转]动态库*.
dll
文件的
Debug
/
Release
版本
是否可以混用(交叉用)?
使用一些第三方的
dll
,比如opencv,会分别生成
debug
和
release
的
dll
,在exe
中
必须要引用指定
版本
的
dll
,不能混用,否则会出错;但是还有一些第三方的
dll
,比如halcon,只提供给用户
release
的
dll
,用户的
debug
版和...
C++动态库*.
dll
文件的
Debug
/
Release
版本
是否可以混用(交叉用)?
比如
debug
的exe
调用
release
编译生成的
dll
的函数,参数如果使用stdvector或者stdstring之类的东西,肯定会崩。含有stl的
debug
动态库和
release
动态库在项目
中
不能混用,
debug
项目必须用
debug
库,
release
项目必须用...
C#自动引用
Debug
|
Release
版本
的
dll
C#自动引用
Debug
|
Release
版本
的
dll
进程/线程/DLL
15,471
社区成员
49,182
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章