示意代码如下:
Handle = LoadLibrary(A.dll)
//do someting
FreeLibrary(Handle)
Handle = LoadLibrary(A.dll)
//do someting
......
FreeLibrary(Handle) Handle = LoadLibrary(A.dll)
//do someting
......
FreeLibrary(Handle)
.....
这样调用多次后,LoadLibrary就会失败,不知到是什么原因,请高手指教。
另:如LoadLibrary失败重复调用一次LoadLibrary,可以成功,但会造成内存泄漏,
Handle = LoadLibrary(A.dll)
//do someting
FreeLibrary(Handle)
Handle = LoadLibrary(A.dll)
//do someting
......
FreeLibrary(Handle) Handle = LoadLibrary(A.dll)
//do someting
......
FreeLibrary(Handle)
.....
这样调用多次后,LoadLibrary就会失败,不知到是什么原因,请高手指教。
另:如LoadLibrary失败重复调用一次LoadLibrary,可以成功,但会造成内存泄漏,
FreeLibrary刚好相反,调用一次,引用计数--,计数为0时,进程就释放模块。
所以匹配使用应该不会出现问题
case2: OS 分配不出必要的资源,导致load 失败
feebody正解!