2017-02-27 219 views
0

我有32位應用程序建立在微軟的Visual Studio,現在我要運行在64位操作系統本申請&我的要求是基於OS (32位或64位)我需要加載一個DLL,我只是在Visual Studio中尋找一個宏,告訴我當前正在運行的操作系統位(32位或64位)應用。確定從32位操作系統或64位操作系統C/C++應用

我發現MSVS _WIN32 & _WIN64宏,但它似乎有在VS2008 & VS2010一個bug他們沒有在他們定義_WIN64。

在Visual Studio()中有一種方法可以確定我是在64位操作系統還是32位操作系統(不是32位應用程序或64位應用程序)上運行我的應用程序,以便更具體,我正在尋找一個宏而不是像IsWow64Process()這樣的函數?

+3

請注意,您的32位應用程序**不能**加載64位DLL。操作系統是無關緊要的。 – MSalters

+0

該錯誤是一個IDE錯誤,而不是編譯器錯誤。編譯時,宏存在。但是,缺少'_WIN64'並不能阻止用戶在64位Windows上運行程序。這就是'IsWow64Process()'進來的地方。 –

+0

@MSalters我沒有說我正在加載64位DLL,我只想加載32位不同的DLL。 – NDestiny

回答

4

你不能可能有一個預處理宏告訴您,無論您是32位或64位Windows上運行。預編譯宏的值是在編譯時定義的。相同的可執行文件(只編譯一次)可以在32位和64位Windows上運行。

您將不得不使用運行時功能。

注意,這整個事情聽起來像一個X-Y的問題;微軟需要相當長的時間來避免你需要知道操作系統是什麼。我建議再問你一個問題。

相關問題