VC++如何判断当前操作系统是32位还是64位?
2012-08-14 15:39
615 查看
方法如下:
注意,是判断当前操作系统,不是判断CPU
不能通过 #ifdef _WIN64 来判断,因为如果开发环境中定义了该宏,则该判断永远为真
参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684139%28v=vs.85%29.aspx
#include <windows.h> #include <tchar.h> typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL); LPFN_ISWOW64PROCESS fnIsWow64Process; BOOL IsWow64() { BOOL bIsWow64 = FALSE; //IsWow64Process is not available on all supported versions of Windows. //Use GetModuleHandle to get a handle to the DLL that contains the function //and GetProcAddress to get a pointer to the function if available. fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress( GetModuleHandle(TEXT("kernel32")),"IsWow64Process"); if(NULL != fnIsWow64Process) { if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64)) { //handle error } } return bIsWow64; } int main( void ) { if(IsWow64()) _tprintf(TEXT("The process is running under WOW64.\n")); else _tprintf(TEXT("The process is not running under WOW64.\n")); return 0; }
注意,是判断当前操作系统,不是判断CPU
不能通过 #ifdef _WIN64 来判断,因为如果开发环境中定义了该宏,则该判断永远为真
参考:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684139%28v=vs.85%29.aspx
相关文章推荐
- VC++如何判断当前操作系统是32位还是64位
- VC++如何判断当前操作系统是32位还是64位?
- VC++如何判断当前操作系统是32位还是64位?
- VC++如何判断当前操作系统是32位还是64位?
- 如何判断操作系统是64位还是32位(GetNativeSystemInfo和IsWow64Process两种方法)
- 【Windows编程】如何判断操作系统是64位还是32位
- [Windows编程] 如何判断操作系统是64位还是32位
- [Windows编程] 如何判断操作系统是64位还是32位
- [Windows编程] 如何判断操作系统是64位还是32位
- 如何判断操作系统是32位还是64位?
- C#如何判断操作系统位数是32位还是64位
- 如何判断操作系统是64位还是32位
- [转]C#如何判断操作系统位数是32位还是64位
- 【Windows编程】如何判断操作系统是64位还是32位
- 如何判断操作系统是64位还是32位
- 【Windows编程】如何判断操作系统是64位还是32位
- C#如何判断操作系统位数是32位还是64位
- windows下如何判断操作系统是64位还是32位
- 如何判断自己的操作系统是32位还是64位?
- C#如何判断操作系统位数是32位还是64位