[英]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.