方法就是通过读取程序文件的头部来判断,具体代码如下:

  1. #include <stdio.h>
  2. #include <windows.h>
  3.  
  4. int CrnGetImageFileMachine(LPCSTR lpFileName)
  5. {
  6. IMAGE_DOS_HEADER idh={};
  7. FILE *f = fopen(lpFileName, "rb");
  8. fread(&idh, sizeof(idh), , f);
  9. IMAGE_FILE_HEADER ifh;
  10. fseek(f, idh.e_lfanew + , SEEK_SET);
  11. fread(&ifh, sizeof(ifh), , f);
  12. fclose(f);
  13. return ifh.Machine;
  14. }
  15.  
  16. int main(int c,char** v)
  17. {
  18. if(c != )
  19. {
  20. printf("usage: %s exepath/dllpath\n",v[]);
  21. getchar();
  22. return ;
  23. }
  24. printf("你查看的文件是: %s\n",v[]);
  25. printf("它的位数是:");
  26. int n = CrnGetImageFileMachine(v[]);
  27. if (n == 0x014C)
  28. printf("x86");
  29. else if (n == 0x0200)
  30. printf("IA64");
  31. else if (n == 0x8664)
  32. printf("x64");
  33. else
  34. printf("Unknown");
  35.  
  36. printf("\n");
  37. getchar();
  38. return ;
  39. }

用代码检查Windows程序的位数的更多相关文章

  1. 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)

    PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...

  2. windows程序消息机制(Winform界面更新有关)

    windows程序消息机制(Winform界面更新有关) 转自:http://www.cnblogs.com/blosaa/archive/2013/05/31/3109586.html 1. Win ...

  3. windows程序消息机制(Winform界面更新有关)--转

    1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队 ...

  4. 代码检查工具jshint和csslint

    前面的话 Douglas Crockford大神根据自己的理念用JavaScript写了一个JavaScript代码规范检查工具,这就是JSLint.后来非常流行,也的确帮助了广大的JavaScrip ...

  5. 使用NodeJsScan扫描nodejs代码检查安全性

    使用NodeJsScan扫描nodejs代码检查安全性1.下载源码:https://github.com/ajinabraham/NodeJsScan2.下载Windows版docker toolbo ...

  6. OC静态代码检查实战

    此文已由作者杨晓授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 在Mac OS系统上,采用Xcodebuild Analyze命令和OClint工具,对iOS项目进行静态代码 ...

  7. 初识Windows程序

    首先,我们创建第一个Windows程序,一共分为4个步骤: 1.打开Visual Studio开发工具 2.选择"文件"→"新建"→"项目" ...

  8. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议16~20)

    建议16:易变业务使用脚本语言编写 Java世界一直在遭受着异种语言的入侵,比如PHP,Ruby,Groovy.Javascript等,这些入侵者都有一个共同特征:全是同一类语言-----脚本语言,它 ...

  9. Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html

    一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...

随机推荐

  1. Lzma(7-zip)和zlib

    Lzma(7-zip) 使用: 在C目录中有算法文件,进入Util\LzmaLib目录,编译生成LIB库,导出了以下两函数,LzmaCompress 为压缩函数,LzmaUncompress 为解压缩 ...

  2. vue之后台管理系统遇到的几个痛点

    杂七杂八的一些日总结 1.vue(最)合理的处理表单提交和初始化表单数据显示的方式 对于表单处理,繁琐的一个地方就是当出现多个下拉选择的表单框的时候,我们需要进行多次将选择的文本去换对应的id值的操作 ...

  3. 学习笔记之Nginx

    NGINX | High Performance Load Balancer, Web Server, & Reverse Proxy https://www.nginx.com/ flawl ...

  4. [UE4]一分钟实现聊天系统

    天系统:客户端发消息到服务器端,服务器端把收到的消息广播到所有客户端. 由于聊天对象需要支持“可复制”和每个客户端都发给一个,所以GameInstance.GameModeGameState都不适合存 ...

  5. meta 标签禁止缩放失效

    之前我们能通过设置meta来禁止用户缩放页面 <meta content="width=device-width, initial-scale=1.0, maximum-scale=1 ...

  6. Redis 在线管理工具(phpRedisAdmin)介绍 两次git

    phpRedisAdmin is a simple web interface to manage Redis databases. phpRedisAdmin 在 Redis clients 的列表 ...

  7. 小程序API录音 微信录音后 Silk格式转码MP3

    http://www.cnblogs.com/wqh17/p/6911748.html

  8. HDFS 入门介绍

    HDFS简介 HDFS(Hadoop Distributed File System,Hadoop分布式文件系统),它是一个高度容错性的系统,适合部署在廉价的机器上.HDFS能提供高吞吐量的数据访问, ...

  9. Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04

    Change default network name (ens33) to old “eth0” on Ubuntu 18.04 / Ubuntu 16.04 By Raj Last updated ...

  10. Python的多态、继承与封装

    一.多态 不用知道变量所引用的对象类型,还是能对它进行操作,它会根据对象(或类)的类型不同而表现出不同的行为. def run_twice(animal): animal.run() animal.r ...