如何判断操作系统是不是64位的
怎么判断操作系统是不是64位的?
有没有API?
------解决方案--------------------
MSDN中有介绍:查看API
BOOL IsWow64Process(
HANDLE hProcess,
PBOOL Wow64Process
);
MSDN有相应Example!
#include <windows.h>
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle( "kernel32 "), "IsWow64Process ");
BOOL IsWow64()
{
BOOL bIsWow64 = FALSE;
if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{// handle error
std::cout < < "Handle Error " < <std::endl;
}
}
return bIsWow64;
}
------解决方案--------------------
GetSystemWow64Directory
判断这个文件夹是否存在
------解决方案--------------------
64位的操作系统只能是64位的cpu支持,但是64位操作系统目前还支持32位的程序,因为要一个过渡期。注意硬件和软件的不同。
说这么多就是说你的问题可以转移到对CPU处理位数的判断上
关于这个,MSDN上面已经给出了一个Sample,项目名字叫CPUID
Determines CPU Capabilities
有没有API?
------解决方案--------------------
MSDN中有介绍:查看API
BOOL IsWow64Process(
HANDLE hProcess,
PBOOL Wow64Process
);
MSDN有相应Example!
#include <windows.h>
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle( "kernel32 "), "IsWow64Process ");
BOOL IsWow64()
{
BOOL bIsWow64 = FALSE;
if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{// handle error
std::cout < < "Handle Error " < <std::endl;
}
}
return bIsWow64;
}
------解决方案--------------------
GetSystemWow64Directory
判断这个文件夹是否存在
------解决方案--------------------
64位的操作系统只能是64位的cpu支持,但是64位操作系统目前还支持32位的程序,因为要一个过渡期。注意硬件和软件的不同。
说这么多就是说你的问题可以转移到对CPU处理位数的判断上
关于这个,MSDN上面已经给出了一个Sample,项目名字叫CPUID
Determines CPU Capabilities