我正在使用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 也許我失去了一些東西