从DLL使用动态链接库(wxWidgets)时出现问题

从DLL使用动态链接库(wxWidgets)时出现问题,dll,wxwidgets,Dll,Wxwidgets,我们创建了一个插件;它是一个DLL(运行时动态链接),使用第三方库(wxWidgets)并动态链接到该库。主机软件似乎在扫描我们的插件,但没有调用导出的函数。我们用DependencyWalker检查了所有依赖项 我们在调试器中看到插件已加载,但没有调用DllMain,插件已卸载 我们尝试使用LoadLibrary和GetProcAddress从一个简单的测试应用程序加载我们的插件,后者识别并调用导出的函数 不过,让wxWidgets静态链接效果很好 有人知道为什么导出的函数(分别是DllMai

我们创建了一个插件;它是一个DLL(运行时动态链接),使用第三方库(wxWidgets)并动态链接到该库。主机软件似乎在扫描我们的插件,但没有调用导出的函数。我们用DependencyWalker检查了所有依赖项

我们在调试器中看到插件已加载,但没有调用DllMain,插件已卸载

我们尝试使用LoadLibrary和GetProcAddress从一个简单的测试应用程序加载我们的插件,后者识别并调用导出的函数

不过,让wxWidgets静态链接效果很好


有人知道为什么导出的函数(分别是DllMain)没有被调用,或者可以指出一个能够监视整个DLL加载过程的工具吗?

如果wxWidgets在加载插件之前已经加载到进程地址空间中(主机应用程序可以做到这一点,或者可能有另一个插件链接到wxWidgets,该插件在您之前加载),那么它可能是另一个版本,缺少插件所需的一些入口点。在DependencyWalker或WinDbg下运行主机应用程序时,应该会显示加载了哪个wxWidgets DLL,并且您可以尝试使用完全相同的wxWidgets DLL从测试应用程序加载插件。这应该会显示是否有缺少依赖项。

可能主机软件在加载插件时做了一些古怪的事情,不喜欢wxWindows

无论如何,请尝试使用套件中的ProcessExplorer检查流程正在执行的操作