我正在使用Mfc到Qt的迁移解决方案,将我的Mfc插件迁移到Qt。 我的Mfc插件已加载到第三方Mfc应用程序中。基本上我用下面的例子Qt based Application Extension:DllMain和Qt Mfc迁移
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID ) {
static bool ownApplication = FALSE;
if (dwReason == DLL_PROCESS_ATTACH)
ownApplication = QMfcApp::pluginInstance(hInstance);
if (dwReason == DLL_PROCESS_DETACH && ownApplication)
delete qApp;
return TRUE;
}
我读pluginInstance功能的代码,诠释了Qt源,并注意pluginInstance调用LoadLibrary和SetWindowsHook内。
到目前为止,一切正常。但我有以下几点: 禁止从DllMain的SetWindowsHook调用LoadLibrary和user32.dll的函数。我在DllMain的msdn文档中读到了这个。那么,如果这是不安全的,为什么官方的Qt站点说在DllMain中调用pluginInstance? Qt based Application Extension 也许我失去了一些东西