遇到过一些第三方库,用DLL发布的。DEBUG版本的APP,必须调用DEBUG版本的DLL,RELEASE 版本的APP 必须调用RELEASE版本的DLL。请问这是为什么?是不是所有DLL必须遵循这个约定?那以DLL为载体的COM会怎么样呢,谢谢
解决方案 »
- 请教关于非模态对话框的问题,谢谢!
- 准备毕业了~做过游戏开发的老人给点建议把~
- 如和将1堆位图转为1个SWF文件让他一起播放呢(100)
- ADO+Access 如何得到未知表的列名及列的数目?
- 如何实现VC式的界面?急.
- 给出完整的应用代码:给您100分
- First-chance exception in Wave.exe: 0xC0000005: Access Violation 什么意思啊?
- 帮帮我!!!!!!!!!!!
- 请问想在本窗口成为非活动窗口时做事,该响应什么消息
- 请问ICON文件的结构(struct)是怎么定义的?
- 关于VC++6.0注解的问题
- 急问,不同对话框之间如何传数据??
但是,DLL使用的RELEASE,就是没有办法输出,导致比较郁闷。
2)同样是提示的问题,如果一个是DEBUG,一个是RELEASE,可能出现,就是断点在Release中不管用,而显示的一些值也
是不合理的值,导致调试的时候认为是错的。
但关键是,我遇到的这些库,如果只有DEBUG版的DLL,APP使用RELEASE版根本链接不过去。(这里使用隐式连接)。不知道是不是库提供商的DLL版本保护问题?
而且,看看上面那篇文章,在跨版本的时候,可能还会出现内存泄漏。
而且以DLL为载体的COM呢,从来没有见过COM发布一个RELEASE版本又发布一个DEBUG版本。
这之间的区别在哪呢?如果忽略调试问题的话,还有没有其它问题?
在vc8之后,混杂使用dll可能会导致错误,而且很难调试
应该说,Debug是为了调试用的,因此Release调Debug Dll没有什么实际意义
而Debug调用Release是有意义的关键是你的Lib文件,DLL要是一个版本的,要么都是Debug,要么都是Release
=======在vc8之后,混杂使用dll可能会导致错误,而且很难调试
这种错误是致命的,导致程序崩溃的错误吗?我明白DEBUG版本的DLL在APP调试时的重要性。只是看到很多说法说DLL不能混杂使用,但始终不知道这样的后果.如果按照这个说法每个发布的DLL都要发布至少2个版本。以DLL为载体的COM也要2个版本,这似乎是不合理的
to feng1976 :
===========应该说,Debug是为了调试用的,因此Release调Debug Dll没有什么实际意义
而Debug调用Release是有意义的 我个人同意你的说法,只是没有可靠的根据去确认==========关键是你的Lib文件,DLL要是一个版本的,要么都是Debug,要么都是Release
这个是什么意思?能不能详细解释一下?
或者都是Release的