簡體   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