Mfc プラグインを Qt に移行するために、Mfc から Qt への移行ソリューションを使用しています。私の Mfc プラグインは、サード パーティの Mfc アプリに読み込まれます。基本的に、次のQt ベースのアプリケーション拡張の例を使用しています。
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 ソースを int すると、pluginInstance が内部で LoadLibrary と SetWindowsHook を呼び出していることに気付きました。
これまでのところ、すべてが正常に機能しています。しかし、次の懸念があります。DllMain から SetWindowsHook のように、user32.dll から LoadLibrary と関数を呼び出すことは禁止されています。DllMainのmsdn docでそれを読みました。では、これが安全でない場合、公式 Qt サイトが DllMain で pluginInstance を呼び出すように言っているのはなぜですか? Qtベースのアプリケーション拡張機能