留下点回忆
这个问题我已经遇到很多次了,只是没有记性,在这里记录一下。这个问题只针对VC。问题是:在调用DLL的程序中删除DLL中分配的BUFFER会CRASH。原因:由于在VC编译的时候可以选择多种不同的运行时库,如果调用DLL的程序与DLL的这个选项不匹配(例如:DLL采用多线程DEBUG版本,而调用程序采用多线程DLL版本),那么就会出现上面的情况。解决办法:很简单,只需要让两种库为同一种就可以了。具体设置步骤如下:菜单:项目-》设置-》C/C++-》代码生成-》运行时库
posted on 2006-06-13 09:43 笨笨 阅读(549) 评论(4) 编辑 收藏 引用
解决办法应该是谁分配谁释放 既然dll提供了获得缓冲的函数,那么就应该提供一个释放缓冲的函数。 回复 更多评论
你说的很有道理,但有的时候,你从DLL得到一个BUFFER,然后你要使用他,但DLL根本不知道你什么时候释放。当然我们可以在DLL中提供一个API来专门用于释放BUFFER,哈哈,不过总有不方便的地方。 而且如果采用这种办法,我们根本不知道是采用的库导致删除BUFFER出问题的这个知识点. 回复 更多评论
我的做法是,不管写啥都用MT就OK了。 回复 更多评论
呵呵,你调式怎么办?所以还必须区别对待 回复 更多评论
Powered by: C++博客 Copyright © 笨笨