我在Visual Studio 2010(在Windows 7 64位下)創建了一個64位C++項目;64位vC++程序似乎在32位模式下運行
我還以爲是運行64位應用程序,而下面的代碼返回真正:
bool is64bit = (sizeof(void*)==8);
,但如果我調用的函數IsWow64Process
,它返回FALSE ...
更多奇怪的事情:
- 調用
LoadLibrary()
加載dll在c:\windows\system32\some.dll
效果很好 - 加載一個dll
c:\windows\sysWow64\some.dll
下將失敗(錯誤代碼193:some.dll不是有效的Win32應用程序)
所有這些失敗表明應用程序在32位模式, 運行,但是這是反對真相的指針類型是8字節長度
我很困惑,任何幫助將不勝感激!
+1 OP描述的所有內容都與64位操作系統上的64位應用程序100%一致。 –
@DavidSchwartz是的 - 人們感到困惑,因爲使用WoW64意味着你正在運行32位,這是你想的名字的反面); –
好的答案。意識到WoW64和system32之間的區別讓我前段時間頭痛不已。 – nothrow