-1

我正在开发一个具有一些 .dll 依赖项的 WINAPI 项目。只是为了澄清,见下文:

MyApplication.exe
Util.dll
MySpecialValuable.dll

假设我MySpecialValuable.dll从文件夹路径中取出;我会收到这样的消息: 我的问题是,有没有办法可以完全禁用弹出窗口 - 静默退出?或者以某种方式在弹出窗口中隐藏 .dll 的名称?这对大多数人来说似乎毫无意义,但我不想公开我正在使用的库。

4

2 回答 2

2

当您不使用导入库链接到 .dll 而是在运行时加载它时,LoadLibrary()您可能会静默失败。

于 2018-11-09T07:36:25.120 回答
1

你不能“默默退出”。系统显示对话框时,进程尚未开始执行用户代码。加载程序在执行用户代码之前解析导入。

虽然可能有一些方法可以配置系统以防止出现错误对话框(我不知道),但您还有其他选择:

  • 显而易见的一个:交付所有依赖项。作为作者,您知道您的依赖关系。当所有导入都可以在加载时解决时,不会有任何错误消息。
  • 推迟导入解决方案,直到您有机会处理故障。将相应的 DLL 标记为/DELAYLOAD将允许您这样做。有关详细信息,请参阅延迟加载 DLL 的链接器支持
  • 使用运行时动态链接

确保你明白,这些选项都不会为你最终想要完成的事情提供解决方案。用户可以轻松启用加载程序快照并获取加载到您的进程中的每个模块的完整信息。

于 2018-11-09T09:35:33.733 回答