首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DllMain和Qt迁移

DllMain和Qt迁移
EN

Stack Overflow用户
提问于 2009-11-05 15:36:34
回答 1查看 2K关注 0票数 0

我正在使用Mfc到Qt的迁移解决方案,将我的Mfc插件迁移到Qt。我的Mfc插件已加载到第三方Mfc应用程序中。基本上,我使用的是以下示例Qt based Application Extension

代码语言:javascript
复制
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。

到目前为止,一切都很好。但我有以下顾虑:禁止从user32.dll调用LoadLibrary和函数,比如从DllMain调用SetWindowsHook。我在DllMain的msdn文档中读到了这一点。那么,如果这是不安全的,为什么官方的Qt站点说要在DllMain中调用pluginInstance?Qt based Application Extension也许我漏掉了一些东西

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-30 10:27:07

也许他们没有读到它:),但对于不调用其他“不安全”apis的动态链接库来说,调用LoadLibrary()是安全的,比如CreateThread()等,这只是一个建议,想想当你从DLL_PROCESS_ATTACH调用LoadLibrary(),库被加载,IAT被填充,DllMain()被调用时发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1678937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档