- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 Visual Studio 2010 中编写了一个 Shell 扩展。它实现了上下文菜单处理程序和文件图标处理程序。
在安装了 Visual Studio 的计算机上运行良好。但在其他计算机上,注册 MyShellExt.dll 失败并显示消息
[Window Title]
RegSvr32
[Content]
The module "MyShellExt.dll" failed to load.
Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.
The specified module could not be found.
[OK]
我检查了依赖项,发现以下文件必须与 MyShellExt.dll 位于同一文件夹中:msvcr100.dll、msvcp100.dll、atl100。 dll.
这意味着我应该将这些库包含到我的安装包中。
如何关闭对这些库的使用?
最佳答案
这些库是 C 运行时、C++ 运行时和 ATL 运行时。您不能关闭前两个,因为它们对于启动程序运行至关重要。但是,您可以静态链接到它们,这样您就不需要将它们作为 DLL 随身携带。为此,您转到项目设置 C/C++、代码生成、运行时库并选择“多线程”或“多线程调试”而不是“多线程 DLL”或“多线程调试 dll”。确保在所有设置配置(调试、发布等)中执行此操作
至于第 3 个库 (ATL100.dll),它也可能受此设置的影响,我不确定。如果您停止使用从中导入的功能,则可能会删除。 dependency walker 可以告诉您正在使用该库中的哪些函数。如果您不能停止使用该功能,则该库可能还有一个静态版本(.lib 文件而不是 .dll 文件)
关于c++ - 模块 "MyShellExt.dll"加载失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19723238/
我在 Visual Studio 2010 中编写了一个 Shell 扩展。它实现了上下文菜单处理程序和文件图标处理程序。 在安装了 Visual Studio 的计算机上运行良好。但在其他计算机上,
我是一名优秀的程序员,十分优秀!