【发布时间】:2010-11-24 10:43:19
【问题描述】:
我有一个在 Windows 上使用 LoadLibrary 来动态加载插件的应用程序。然而,一些插件还有其他依赖的 DLL,例如数据库客户端 DLL。 当您尝试加载此类 DLL 并且其中一个依赖的 DLL 不存在时,您会看到一个令人讨厌的 Windows 对话框:
“程序无法启动,因为您的计算机中缺少 xxx.ddl。请尝试重新安装程序以解决此问题。”
有什么简单的方法可以避免这个对话框吗?我希望有人可以使用 LoadLibraryEx 并传递一个标志,上面写着“不要给我那个烦人的对话框”,但它看起来不像。
我希望应用程序处理该错误,而不是 Windows 为我处理,尤其是消息的文本不正确(问题不在于程序无法启动,程序运行得很愉快,就是无法加载这个插件)。
我想避免的是必须重写具有这些外部依赖项的插件,以使它们自己动态加载任何依赖模块,然后查询任何入口点。
无论如何,任何建议都将不胜感激。
【问题讨论】:
-
LoadLibraryEx有很多标志。 -
ruslik:LoadLibraryEx 可能有很多标志,但没有一个,至少没有记录在 MSDN 上,控制这种行为。