繁体   English   中英

在Visual Studio 2010中将项目从Win32移植到x64平台后加载了错误的ComCtl32.dll

[英]Incorrect ComCtl32.dll is loaded after porting a project from Win32 to x64 platform in Visual Studio 2010

我已经将一个项目从Win32移植到x64平台。 我更改了所有依赖项,因此我可以顺利地构建项目。 但是,一旦我启动可执行文件,我就会收到错误(0xc000007b)

使用依赖性walker我可以看到,在某个点上加载了ComCTL32.dll但是x86而不是x64

一旦我关闭了清单生成( linker->Manifestfile ),它就可以工作了。 但那不是解决方案。

所以我的问题是:在Visual Studio 2010中,我可以在哪里设置正确的DLL ComCtl32.dll的路径。

好吧,明显很重要。 可能导致此问题的错误示例如下所示:

<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="x86"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>

processerArchitecture属性值很重要。 一个好的使用* ,这意味着兼容amd64 ,这意味着64位

您没有在任何地方设置路径。 您指定一个清单来指示您想要的ComCtrl版本,然后由操作系统来查找它,就像任何其他DLL一样。 您看到的错误意味着64位进程正在尝试加载32位DLL,反之亦然。 这可能是一个搜索路径问题,可能是一个依赖问题。 使用像DependancyWalker这样的工具来找到罪魁祸首。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM