VC程序里判断系统是64位还是32位的正确方法.
2009-11-04 07:00
701 查看
在很多网站上都贴有这种方法,可惜都无法区别32位或64位,本身思路是正确的,但是在实现的细节上使用错误:
BOOL IsWow64()
{
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle("kernel32"),"IsWow64Process");
if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{
return FALSE;
} else
return TRUE;
}
return bIsWow64;
}
正确的方法应该是这样:
BOOL IsWow64()
{
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle("kernel32"),"IsWow64Process");
if (NULL != fnIsWow64Process)
{
fnIsWow64Process(GetCurrentProcess(),&bIsWow64);
}
return bIsWow64;
}
不是判断函数地址是否有效,而是判断输出型参数bIsWow64的值.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zzdmfk/archive/2009/08/11/4432800.aspx
BOOL IsWow64()
{
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle("kernel32"),"IsWow64Process");
if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{
return FALSE;
} else
return TRUE;
}
return bIsWow64;
}
正确的方法应该是这样:
BOOL IsWow64()
{
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress( GetModuleHandle("kernel32"),"IsWow64Process");
if (NULL != fnIsWow64Process)
{
fnIsWow64Process(GetCurrentProcess(),&bIsWow64);
}
return bIsWow64;
}
不是判断函数地址是否有效,而是判断输出型参数bIsWow64的值.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zzdmfk/archive/2009/08/11/4432800.aspx
相关文章推荐
- VC程序里判断系统是64位还是32位的正确方法.
- VC程序里判断系统是64位还是32位的正确方法
- VC程序里判断系统是64位还是32位的正确方法
- VC程序里判断系统是64位还是32位的正确方法
- 判断系统是64位还是32位的正确方法
- 【VC】 判断windows系统是64位还是32位
- C# 判断32位还是64位系统的一个简单方法(当然目标平台不能是x86)
- 【VC】 判断windows系统是64位还是32位
- VC 判断系统和程序是32位和64位
- bat命令批处理判断32位还是64位系统的多种方法
- Shell脚本判断Linux系统是32位还是64位的几种方法分享
- mak 系统是64位还是32位判断程序
- Win8判断电脑所用系统是32位还是64位的方法
- VC判断系统和进程是64位还是32位
- VC判断系统和进程是64位还是32位
- VC判断系统是64位还是32位
- python判断windows系统是32位还是64位的方法
- Shell脚本判断Linux系统是32位还是64位的几种方法分享
- C#判断系统是32位还是64位的方法
- python判断windows系统是32位还是64位的方法