我已經看到這里和那裡提到的這個問題,特別是7bit,但我從來沒能解決這個問題:
在deinit()期間,egy測試器沒有正確地減少加載庫的引用計數。因此,DLL文件在系統中保持加載狀態,並在您再次嘗試運行測試程序時崩潰。
我嘗試使用GetModuleHandle()和FreeLibrary(),但似乎沒有解決問題。
插入代碼if(IsTesting()){int dll_handle = DLLHandle(C:\ Program Files(x86)\ MT \ experts \ libraries \ SQLBridgeV2.dll);打印(dll_handle); if(dll_handlegt; 0)FreeLibrary(dll_handle);更正:
dll_handle返回一個非0數字,FreeLibrary減少它。
如果我再次檢查GetModuleHandle(),我得到0 - 這應該意味著庫被卸載。
但是,如果我再次啟動測試儀,它仍然會崩潰。
這變得非常煩人,因為我無法使用優化功能。
究竟發生了什麼? DLL的全局變量是否仍被最後一次運行的數據初始化和污染?或者嘗試在已初始化的DLL上初始化DLL時是否發生錯誤?