3.2 终止 HALCON 库

在以线程独占上下文卸载 DLLs 的应用程序中,例如在 Windows 下使用 FreeLibrary() 时,如果仍有活动的 HALCON 线程,HALCON 库将无法正常终止。

例如,在使用 HALCON/C++ 实现 ATL 控制时,可能会出现这种问题。

为了解决这个问题,有必要在卸载 DLL 之前调用 FinalizeHALCONLibrary() 函数。请注意,应用程序必须针对 halcon.lib 进行链接。请确保对 FinalizeHALCONLibrary() 的调用不是来自其他 DLL 的 DllMain 函数。请注意,一旦调用了 FinalizeHALCONLibrary(),就不能再调用其他 HALCON 函数。还请注意,在终止过程中,HALCON 库无法正确释放所有资源。这可能会在反复加载和卸载 HALCON 库时导致内存泄漏。