我收到一個錯誤消息,說「應用程序無法正確啓動(0xc000007b)。單擊確定關閉應用程序。」當我嘗試運行一個程序時,我用Visual Studio 2005進行了編譯。x86 AMD64 DLL問題 - Visual Studio 2005?
當我運行windows程序「依賴」這個可執行文件時,我看到一個TON的DLL被列爲「x86」dll。這些都顯示爲OS DLL(位於c:\ windows \ system32目錄中)。 「取決於」在描述架構時將它們列爲紅色,因爲我正在製作AMD64二進制文件。一些DLL(我從源代碼編譯的QT dll)被列爲AMD64。
我曾嘗試在「c:\ windows \ system32」之前的路徑中添加「c:\ windows \ SysWOW64」並重建我的應用程序。這看起來像我這些DLL的64位版本生活的地方。這仍然收到相同的失敗消息。我的項目設置爲x64項目。在我的項目 - >屬性 - >鏈接器 - >高級 - >目標機器下,我嘗試了「MachineX64」和「未設置」。當我嘗試運行我的可執行文件時,這兩個設置在運行時都會導致相同的錯誤消息。
我不是很瞭解在windows環境中構建軟件。我的大部分經驗來自Linux。對我來說,這似乎是一個DLL架構問題,但我不確定。 Google'這個錯誤信息並沒有提供給我很多有用的信息。任何幫助提供將非常感激。我剛開始一個新的工作,看起來像我有很多很多的問題,當涉及到實際運行我們的代碼...
感謝您百忙之中抽出時間來閱讀我的問題,
-Brian J. Stinar-
首先,非常感謝您爲我提供反饋。
'set'爲我提供了以下信息,我相信這些信息可以幫助您回答一些問題。由於我對windows系統管理並不熟悉,請告訴我是否有其他命令,您認爲我應該運行它來爲您提供更多有用的信息。我相信輸出是從 '設置' 相關的是以下:
中的libversion = Win64的
PROCESSOR_ARCHITECTURE = AMD64
PROCESSOR_IDENTIFIER = Intel64位家族6模型26步進5,GenuineIntel
PROCESSOR_LEVEL = 6
PROCESSOR_REVISION = 1a05
在我的系統屬性下,我找到下面的值S的相信會有助於澄清我的情況:
Windows 7的
處理器:Intel(R)至強(R)CPU W3530 @ 2.80GHz的2.79 GHz的
系統類型:64位操作系統
我不完全相信我理解x64和ia64之間的區別,但據我所知,ia64是用於itanium類處理器的,我沒有。我相信我有一個x64處理器。這是根據閱讀
http://mikedimmick.blogspot.com/2006/03/whats-difference-between-x64-and-ia-64.html
至強處理器後落入64類。我不確定我是否理解AMD64如何適應這一點。
我是否應該連接AMD64 DLL,並且如果我實際上有英特爾至強芯片,我的程序是否應該列出CPU類型AMD64?
再次感謝你的幫助,
布賴恩J. Stinar-
根據從平臺SDK err.exe,0xC000007b是STATUS_INVALID_IMAGE_FORMAT(或ERROR_INVALID_NAME)。所以是的,聽起來像是一個架構問題。你肯定在64位窗口上運行?你沒有混合x64和ia64? – Rup 2010-08-16 16:44:32