Windows 卸载mylibrary.dll时出现BEX64错误

Windows 卸载mylibrary.dll时出现BEX64错误,windows,dll,loadlibrary,Windows,Dll,Loadlibrary,我有一个可执行文件,可以用LoadLibrary动态打开一个DLL(mylibrary.DLL)。当应用程序完成时,它会崩溃。通过查看错误报告,发现它提供了一个eventtype BEX64。其中一个参数是mylibrary.dll\u。剩下的是一堆地址 有人知道这意味着什么吗?问题的可能根源是什么?我可以访问所有相关代码的源代码。不久前我也遇到过同样的问题。当我在退出时调用freebrary()时,程序崩溃了。原因是我的库启动了一个正在运行的线程。在调用freebrary()并停止它们之前,检

我有一个可执行文件,可以用LoadLibrary动态打开一个DLL(mylibrary.DLL)。当应用程序完成时,它会崩溃。通过查看错误报告,发现它提供了一个eventtype BEX64。其中一个参数是mylibrary.dll\u。剩下的是一堆地址


有人知道这意味着什么吗?问题的可能根源是什么?我可以访问所有相关代码的源代码。

不久前我也遇到过同样的问题。当我在退出时调用
freebrary()
时,程序崩溃了。原因是我的库启动了一个正在运行的线程。在调用
freebrary()
并停止它们之前,检查库中是否有正在运行的线程。可能主应用程序中有一个线程在开始卸载时使用DLL函数。

对于其他可能会发现这个问题的人来说:崩溃的一个简单方法是在DllMain中创建一个窗口(CreateWindow),然后在卸载DLL时忘记销毁它(如果卸载是从另一个线程完成的,这可能会很棘手)。广播到所有窗口的任何窗口消息都将立即使进程崩溃,因为窗口过程现在映射到无效地址。。。