使用Win SDK开发的DLL,在MFC程序中调用。一切正常。但是调用FreeLibrary()之后出错,在调用这个函数处理的过程中都能成功,后面就不行了。请问这是何原因
谢谢
9 个解决方案
#1
是不是有些函数还在调用
#2
不会。本来就没有多线程,都是同步调用的。如果还有函数在调用,是执行不到FreeLibrary的。这个问题,我在微软的技术网站也见过类似的,好像是PROCESS_DETACH的时候需要一个什么处理。那是讲MFC的DLL的
#3
加载动态库的时候,在初始化中加载,在程序结束的时候进行释放,不要每次加载/释放。
#4
我卡 FreeLibrary 这2天了 郁闷啊
#5
我的处理就是不释放,在LoadLibrary()之后保存其实例句柄,中间要用的时候直接使用。
等程序结束之后,它会自动释放的。我不去手动释放也没关系。
等程序结束之后,它会自动释放的。我不去手动释放也没关系。
#6
可能是dll里面内存溢出,错误啦.
#7
FreeLibrary之后出错的话可能是你还在访问已经被释放了的资源引起的
#8
好像找到原因了,因为在我的DLL中使用了全局变量。
#9
可能FreeLibrary后,你还在使用其中函数或变量
#1
是不是有些函数还在调用
#2
不会。本来就没有多线程,都是同步调用的。如果还有函数在调用,是执行不到FreeLibrary的。这个问题,我在微软的技术网站也见过类似的,好像是PROCESS_DETACH的时候需要一个什么处理。那是讲MFC的DLL的
#3
加载动态库的时候,在初始化中加载,在程序结束的时候进行释放,不要每次加载/释放。
#4
我卡 FreeLibrary 这2天了 郁闷啊
#5
我的处理就是不释放,在LoadLibrary()之后保存其实例句柄,中间要用的时候直接使用。
等程序结束之后,它会自动释放的。我不去手动释放也没关系。
等程序结束之后,它会自动释放的。我不去手动释放也没关系。
#6
可能是dll里面内存溢出,错误啦.
#7
FreeLibrary之后出错的话可能是你还在访问已经被释放了的资源引起的
#8
好像找到原因了,因为在我的DLL中使用了全局变量。
#9
可能FreeLibrary后,你还在使用其中函数或变量