c语言获得程序位数和操作系统位数和名称
来源:互联网 发布:wuli什么意思网络用语 编辑:程序博客网 时间:2024/05/22 17:11
////////////////////////////////////////////////////////////// vcis64.cpp : VC 64位程序开发心的——c语言获得程序位数和操作系统位数和名称。////////////////////////////////////////////////////////////#include <Windows.h>#include <stdio.h>#include <tchar.h>#include <conio.h>// 获取程序位数(被编译为多少位的代码)int GetProgramBits(){return sizeof(int*) * 8;}// 安全的取得真实系统信息VOID SafeGetNativeSystemInfo(__out LPSYSTEM_INFO lpSystemInfo){if (NULL==lpSystemInfo)return;typedef VOID (WINAPI *LPFN_GetNativeSystemInfo)(LPSYSTEM_INFO lpSystemInfo);LPFN_GetNativeSystemInfo fnGetNativeSystemInfo = (LPFN_GetNativeSystemInfo)GetProcAddress( GetModuleHandle(_T("kernel32")), "GetNativeSystemInfo");;if (NULL != fnGetNativeSystemInfo){fnGetNativeSystemInfo(lpSystemInfo);}else{GetSystemInfo(lpSystemInfo);}}// 获取操作系统位数int GetSystemBits(){SYSTEM_INFO si;SafeGetNativeSystemInfo(&si);if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_IA64 ){return 64;}return 32;}//获取操作系统名字,如windows 7//成功返回系统信息,失败返回NULLint GetVersionInfo(char* systeminfo){OSVERSIONINFO osvi;ZeroMemory(&osvi, sizeof(OSVERSIONINFO));osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);if (!GetVersionEx(&osvi)) {return NULL;}//判断版本if (osvi.dwMajorVersion == 5) {switch (osvi.dwMinorVersion) {case 0://wcscpy_s(systeminfo,_T("Windows 2000"));strcpy(systeminfo,"Windows 2000");break;case 1:strcpy(systeminfo,"Windows XP");break;case 2:strcpy(systeminfo,"Windows Server 2003");break;default:strcpy(systeminfo,"Unknown");break;}}else if (osvi.dwMajorVersion == 6) {switch (osvi.dwMinorVersion) {case 0:strcpy(systeminfo,"Windows Vista");break;case 1:strcpy(systeminfo,"Windows 7");break;case 2:strcpy(systeminfo,"Windows 8");break;default:strcpy(systeminfo,"Unknown");break;}}else {strcpy(systeminfo,"Unknown");}return 0;}int _tmain(int argc, _TCHAR* argv[]){const int nBitCode = GetProgramBits();const int nBitSys = GetSystemBits();char systeminfo[1024];memset(systeminfo,0,1024);GetVersionInfo(systeminfo);//_tprintfprintf("I am a %dbit Program, run on %d bit %s System.", nBitCode, nBitSys,systeminfo);//_getch();return 0;}
0 0
- c语言获得程序位数和操作系统位数和名称
- 获得程序位数和操作系统位数
- VC 64位程序开发心的——获得程序位数和操作系统位数
- CPU位数和操作系统位数
- 关于CPU位数和操作系统位数
- 关于CPU位数和操作系统位数
- CPU位数、操作系统位数和编译器位数关系
- CPU位数、操作系统位数和编译器位数关系
- CPU位数、操作系统位数和编译器位数关系
- CPU位数、操作系统位数和编译器位数关系
- 操作系统和硬件cpu位数
- C语言*函数调用* 判断输入数字各个位数的和>> 结合判断一个数是几位数
- Linux下查看操作系统的位数和系统名称版本信息
- 获取操作系统位数、名称、版本名称
- C语言-是用单链表求整数的位数以及其和
- 查看linux操作系统版本和位数
- 获取Windows操作系统版本和位数
- cpu位数和系统位数
- 软件项目解决方案模板
- Class.forName() 和 ClassLoader.loadClass()的区别?
- JVM内存模型
- js日期
- rockMongo like 查询
- c语言获得程序位数和操作系统位数和名称
- 详解sizeof与strlen
- win7分区丢失,DiskGenius中提示“终止位置与扩展分区有重叠”
- 机器学习入门资源MARK
- ARC入门
- php创建折线图
- 面向对象——继承
- python学习6:dir()的使用
- 字符数组,字符指针,字符串常量以及其sizeof的一些总结