系统相关
首页 > 系统相关> > c – 模块“MyShellExt.dll”无法加载

c – 模块“MyShellExt.dll”无法加载

作者:互联网

我在Visual Studio 2010中编写了一个Shell扩展.
它实现了一个Context Menu Handler和File Icon Handler.

在使用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”.确保在所有设置配置中都这样做(Debug,Relaese等’)

至于第3个库(ATL100.dll),它也可能受此设置的影响,我不确定.如果停止使用从中导入的函数,则可以删除.依赖性walker可以告诉您从该库中使用的函数.如果可以;停止使用该函数,那么该库也可能具有静态版本(.lib文件而不是.dll文件)

标签:c,visual-studio-2010,dll,shell-extensions
来源: https://codeday.me/bug/20190728/1565038.html