【发布时间】:2009-11-05 07:36:33
【问题描述】:
我正在使用 Mfc 到 Qt 迁移解决方案,将我的 Mfc 插件迁移到 Qt。 我的 Mfc 插件已加载到第三方 Mfc 应用程序中。基本上我正在使用以下示例Qt based Application Extension:
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;
}
我阅读了Qt Sources中pluginInstance函数的代码,注意到pluginInstance在里面调用了LoadLibrary和SetWindowsHook。
到目前为止一切正常。但我有以下担忧: 禁止从 user32.dll 调用 LoadLibrary 和函数,如 DllMain 中的 SetWindowsHook。我在 DllMain 的 msdn 文档中读到了这一点。那么,如果这是不安全的,为什么官方 Qt 站点说要在 DllMain 中调用 pluginInstance? Qt based Application Extension 也许我错过了什么
【问题讨论】:
标签: winapi qt qt4 qt-mfc-migration