// vcis64.cpp : VC 64位程序开发心的——c语言获得程序位数和操作系统位数和名称。

#include

#include

#include

#include

// 获取程序位数(被编译为多少位的代码)

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

//成功返回系统信息,失败返回NULL

int 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);

//_tprintf

printf("I am a %dbit Program, run on %d bit %s System.", nBitCode, nBitSys,systeminfo);

//

_getch();

return 0;

}

c语言名字程序,c语言获得程序位数和操作系统位数和名称相关推荐

  1. CPU位数、操作系统位数、应用程序位数浅析

    问题起源: 64位CPU的64指的是什么 32位计算机的32位指的是啥 32位计算机装8G内存有用吗 32位应用程序和64位应用程序又是啥... ... 能说上来一点,但实际上含糊不清的概念有很多 下 ...

  2. c语言小饭店等位就餐程序,C语言程序设计 C语言程序设计 3.C语言程序设计教案全部.doc...

    C语言程序设计教案 PAGE PAGE 2 C语言程序设计教案 C语言程序设计教案 编写:宋铁桥 计算机技术系 二〇一七年三月整理 河北工业职业技术学院 <C语言程序设计>课程教案首页 授 ...

  3. C语言第一节 C语言程序与开发工具

    开发工具的选择 可以用来写代码的工具:记事本.UltraEdit.Vim.Xcode等 选择Xcode的原因:苹果官方提供的开发利器.简化开发过程.有高亮显示功能 使用Xcode新建一个C程序的源代码 ...

  4. 初识c语言教程,第1课C语言教程一: 初识C程序.doc

    第1课C语言教程一: 初识C程序 第1课 初识C程序 教学目标 1.计算机语言介绍 2.了解C语言 3.如何学好C语言(多做题,多上机调试程序) 4.C语言上机调试环境 教学过程 计算机程序设计语言的 ...

  5. 姓名的首字母组成的图案C语言怎么编,c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母:...

    给分!代码如下:includeincludeincludedefine MAX_LENGTH 50int main(){char cFirstName[MAX_LENGTH];char cLastNa ...

  6. c语言中语句开始的标志是,第一个单片机程序(C语言编写)

    第一个单片机程序: #include //包含特殊功能寄存器定义的头文件 sbitLED = P0^0; //位地址声明,注意:sbit 必须小写.P 大写! void main(){ //任何一个 ...

  7. 第一个单片机程序(C语言编写)

    第一个单片机程序: 纯文本复制 #include <reg52.h> //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; //位地址声明,注意:sbit 必须小写.P 大 ...

  8. 《C语言基础学习笔记》—— 黑马程序员 <Part1-4>

    <C语言基础学习笔记 Part1-4> Part 1 基础介绍 1. 第一个C语言程序:HelloWorld 1.1 编写C语言代码:hello.c 1.2代码分析 1)include 头 ...

  9. 用EasyX图形库编写动态彩色万花尺程序(c语言)

    用EasyX图形库编写动态彩色万花尺程序(c语言) 在EasyX看到别人写的万花尺程序,想起来小时候玩的,就动手改进增加了一些效果.参考程序连接(侵删):万花尺_慢羊羊 我的效果如下,输入数据:[30 ...

最新文章

  1. 4.通过Ubuntu指令生成GIF图片
  2. MIT科学家首次发现只对歌唱有反应的神经元,对,只能人声带伴奏的那种歌
  3. python编程语言是什么-编程语言分类及python所属类型
  4. 不同组织间的邮件收发
  5. python中def和return是必须使用的保留字吗_Python 保留字和关键字的用法
  6. 软件工程课, 编程课 助教的工作介绍
  7. windows和linux没有启动选择,重装Windows后,LILO启动选单不见了,无法进入Linux系统怎么办...
  8. 作为程序员,制霸了 Stack Overflow 是一种怎样的体验?
  9. python字符串方法总结_python字符串使用方法总结
  10. php将excel日期转成时间戳,使用PHP将Excel日期编号转换为Unix时间戳时不匹配
  11. SQLite查询优化(转)
  12. 《基于MFC的OpenGL编程》Part 3 Drawing Simple 2D Shapes
  13. Python 之 新手安装详解 、安装目录说明 及 修改 pip 默认包安装位置
  14. 华为交换机查看发光收光
  15. 如何系统学习SWAT模型—建模方法、实例应用、高级进阶
  16. OWASP Top 10 2017 10项最严重的 Web 应用程序安全风险
  17. 最新PHP小旋风站群系统源码Ver9.02+带安装教程
  18. android 连 wpa3路由器,WPA3 和 Wi-Fi Enhanced Open
  19. 各种格式的文件用什么软件打开
  20. 如果黑客转行干活动策划,我再也不怕开会睡着了

热门文章

  1. 3.Spring Security 自定义用户认证
  2. Swift基础--调用第三方OC项目
  3. git分支指的是_git基础之分支含义
  4. 计算机常见知识获取方法,计算机信息处理技术基础知识
  5. c mysql 分页,MySQL查询之排序分页
  6. lj245a引脚功能图_如何快速读懂时序图?
  7. python表单防重复提交_防止表单重复提交的几种策略
  8. html主动发起重新布局,重启连不上网
  9. 7-30 字符串的冒泡排序 (C语言)
  10. 天猫国际618一骑绝尘,占中国跨境进口电商总订单超七成