当前位置: 首页 > news >正文

免费css网站模板石家庄市人民政府官网

免费css网站模板,石家庄市人民政府官网,专门做品牌折扣的网站有哪些,wordpress 七牛云 cdn推荐阅读《深入浅出:Windows Api 程序设计》。《深入浅出:Windows Api 程序设计》是 王端明 先生的著作,是2022年人民邮电出版社出版的图书。 文章目录 基础知识一、Windows 特色二、编程语言三、安装软件四、Hello World 程序练习1、创建工程…

推荐阅读《深入浅出:Windows Api 程序设计》。《深入浅出:Windows Api 程序设计》是 王端明 先生的著作,是2022年人民邮电出版社出版的图书。

文章目录

  • 基础知识
    • 一、Windows 特色
    • 二、编程语言
    • 三、安装软件
    • 四、Hello World 程序练习
      • 1、创建工程
      • 2、编写程序
        • 2.1 Windows.h
        • 2.2 入口函数 WinMain
        • 2.3 MessageBox 函数
    • 五、程序编译
      • 1、预处理
      • 2、汇编
      • 3、编译
      • 4、链接
    • 六、例程运行效果

基础知识

一、Windows 特色

Microsoft Windows是美国微软公司开发的一套操作系统。自1985年问世以来,随着软硬件的升级,Microsoft Windows不断迭代更新,变得更加人性化,始终备受市场青睐。
Windows操作系统主要特点是图形用户界面、多任务、一致的用户界面等。
而对程序员开发者来说,Windows操作系统有以下卓越的优点:

  • 大量API函数调用:支持几千种函数调用 ,可开发出界面精美、性能卓越的应用程序。
  • 设备无关性:应用程序只需要针对设备的驱动程序进行开发,而不必关注设备的具体型号。
  • 内存管理方便:内存分页和虚拟内存的使用,使得应用程序可用的地址空间极大。

Windows Api(应用程序编程接口,Application Programming Interface,简称API),允许开发者调用操作系统提供的一系列功能,而不必考虑其底层的运行机制。Api函数是构建整个Windows框架的基石,它的上层是所有Windows应用程序。

二、编程语言

  • 机器语言:机器指令(二进制0和1描述的指令)的集合。直接对硬件操作。开发者使用困难,依赖机器,局限性很大,属于低级语言。
  • 汇编语言:汇编指令(英文缩写的助记符描述的指令)的集合。直接对硬件操作。比较复杂、冗长;但是其生成的可执行文件(.exe或.dll)较小,且执行速度快。
  • 高级语言:“高级”是相对于汇编而言的,包含很多种编程语言。对开发者而言,易操作,学习使用简单。
    • 不可直接被机器识别,需要转换才可被执行。按转换方式分类:
      • 解释类:一边翻译成机器语言,一边被执行。效率较低,不能生成独立的可执行文件。但较为灵活,可动态调整修改应用程序代码。如python,JavaScript等。
      • 编译类:程序执行前,翻译成机器语言。可脱离编程环境独立执行,效率较高。但修改后需重新编译,才可生成目标文件。如C、C++等。

三、安装软件

按部就班安装VS就行。

四、Hello World 程序练习

1、创建工程

使用Visual Studio 2022开发实现。

  • 左上角文件-新建-项目
  • 筛选语言为C++,平台为Windows,项目类型为桌面,选择Windows桌面向导,下一步。

Windows桌面向导

  • 对项目命名,选定项目路径,创建。
  • 在应用程序类型中选择桌面应用程序(.exe),勾选空项目,确定。

应用程序类型

  • 默认情况下,设置为Debug x86(32位程序,调试版本)
  • 在解决方案资源管理器窗口中,选中创建的项目,右击,添加-新建项,选择C++文件(.cpp),改名,添加。

添加C++文件

2、编写程序

#include <Windows.h>  int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{MessageBox(NULL, TEXT("Hello World!"), TEXT("Caption"), MB_OKCANCEL | MB_ICONINFORMATION | MB_DEFBUTTON2);return 0;
}
2.1 Windows.h
  • 重要头文件,包含:
    • WinDef.h:基本数据类型定义
    • WinBase.h:Kernel(内核)有关定义
    • WinGdi.h:图形设备接口有关定义
    • WinUser.h:用户界面有关定义
2.2 入口函数 WinMain
   int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow);
  • 函数调用约定:用于描述 函数参数怎么传递 和 由谁来平衡堆栈。常用的函数调用约定有_stdcall_cdecl_fastcallpascal等。
    • 其中,WinMain中的WINAPI的定义就是函数调用约定。<minwindef.h>中:
      #define CALLBACK    __stdcall
      #define WINAPI      __stdcall
      #define WINAPIV     __cdecl
      #define APIENTRY    WINAPI
      #define APIPRIVATE  __stdcall
      #define PASCAL      __stdcall
      
  • 批注:函数中每个参数的数据类型前的参数说明符,用于说明函数参数的性质与类型。
    • _In_:输入参数,函数只可读取但不可修改该参数
    • _Inout_:输入输出参数,调用前可设置数值,函数返回后会修改该参数的值
    • _Out_:输出参数,函数返回后,会返回一个值给这个参数
    • _Outptr_:输出参数,函数返回后,会返回一个指针值给这个参数
    • 带有opt:表示可以不使用该参数,也可设置为0,NULL
  • WinMain的四个参数:
    • HINSTANCE hInstance :表示应用程序当前实例的句柄。句柄是用于唯一标识某个对象的数值。
      • 模块:代表的是一个运行中的.exe或.dll 文件。文件中的所有代码和资源载入内存后运行时叫作模块;为了区分地址空间中的不同模块,每个模块都有一个唯一的模块句柄来标识。
      • 实例:多次加载同一个可执行文件时,为了区分多次加载的“复制”,把每个“复制”叫作实例。每个实例均用不同的实例句柄(HINSTANCE)值来标识。在 Win32 中,实例句柄就是模块句柄。
      • HINSTANCE hPrevInstance:表示应用程序上一个实例的句柄。同一程序的所有实例共享代码和只读数据。查看该参数,可以查看是否有其他实例在运行,从而进行数据共享。对于 Win32,该参数始终为NULL。
      • LPSTR lpCmdLine:指向应用程序命令行参数字符串的指针。LPSTR是一种windows数据类型,表示一个以零(NULL)结尾的char类型字符串的指针。
      • int nCmdShow:指定应用程序最初如何显示。
2.3 MessageBox 函数
int MessageBox(_In_opt HWND    hWnd,          //消息框的所有者的窗口句柄_In_opt LPCTSTR lpText,        //要显示的消息内容_In_opt LPCTSTR lpCaption,     //消息框的标题_In_    UINT    uType          //消息框的图表样式和按钮样式);
  • 功能是显示一个消息提示框,可以包含:系统图标、按钮、消息标题、消息内容。
  • HWND hWnd:消息框的所有者的窗口句柄。句柄类型:HWND——窗口句柄类型;HIC0N——图标句柄类型;HCURSOR——光标句柄;HBRUSH——画刷句柄。
  • LPCTSTR lpText:要显示的消息内容。LPCTSTR表示指向 wchar_t 或 char 类型常量字符串的指针。
  • LPCTSTR lpCaption:消息框的标题
  • UINT uType:消息框的图表样式和按钮样式
  • 各个参数的具体数值可以参看官方目录——MessageBox 函数 (winuser.h)

五、程序编译

将一个C/C++文件编译成可执行程序,需要经过预处理、汇编、编译、链接等阶段。(利用linux环境下的gcc编译工具可以清晰看到编译的阶段)

1、预处理

  • .c文件转成.i文件
  • 预处理过程中的工作:宏定义展开;处理所有条件编译指令;处理#include;删除注释;添加行号和文件标识。

2、汇编

  • .i文件转为.s文件
  • 汇编的过程检查语法错误

3、编译

  • .s文件转成.obj文件
  • 汇编文件转成目标文件(二进制文件)

4、链接

  • .obj文件转成.exe文件
  • 在此过程中,将二进制的目标文件与用到的库绑定链接在一起

六、例程运行效果


运行结果


文章转载自:
http://pricket.gtqx.cn
http://byr.gtqx.cn
http://jakes.gtqx.cn
http://geocentrical.gtqx.cn
http://lexicography.gtqx.cn
http://plough.gtqx.cn
http://sittwe.gtqx.cn
http://smacksman.gtqx.cn
http://landship.gtqx.cn
http://unissued.gtqx.cn
http://occultism.gtqx.cn
http://calyceal.gtqx.cn
http://illegible.gtqx.cn
http://complaisant.gtqx.cn
http://nbs.gtqx.cn
http://datal.gtqx.cn
http://autofocus.gtqx.cn
http://smaragdite.gtqx.cn
http://fafnir.gtqx.cn
http://glauconitic.gtqx.cn
http://cotylosaur.gtqx.cn
http://fright.gtqx.cn
http://zircaloy.gtqx.cn
http://placentography.gtqx.cn
http://allmains.gtqx.cn
http://xylophagan.gtqx.cn
http://cliometrics.gtqx.cn
http://nina.gtqx.cn
http://schoolyard.gtqx.cn
http://player.gtqx.cn
http://botanical.gtqx.cn
http://currach.gtqx.cn
http://eyealyzer.gtqx.cn
http://twinned.gtqx.cn
http://journeywork.gtqx.cn
http://cudgel.gtqx.cn
http://italicise.gtqx.cn
http://mule.gtqx.cn
http://unfurnish.gtqx.cn
http://joker.gtqx.cn
http://monicker.gtqx.cn
http://deoxidizer.gtqx.cn
http://playactor.gtqx.cn
http://canavalin.gtqx.cn
http://devilment.gtqx.cn
http://milesimo.gtqx.cn
http://aggressively.gtqx.cn
http://technophile.gtqx.cn
http://troupe.gtqx.cn
http://alexipharmic.gtqx.cn
http://encarnalize.gtqx.cn
http://sirrah.gtqx.cn
http://bridgetown.gtqx.cn
http://psychotechnology.gtqx.cn
http://nucleinase.gtqx.cn
http://jugulate.gtqx.cn
http://collet.gtqx.cn
http://philosopher.gtqx.cn
http://tailboard.gtqx.cn
http://coast.gtqx.cn
http://disseminative.gtqx.cn
http://reinstallment.gtqx.cn
http://turnstile.gtqx.cn
http://scripter.gtqx.cn
http://bafflegab.gtqx.cn
http://monometallist.gtqx.cn
http://rubricity.gtqx.cn
http://unprepossessed.gtqx.cn
http://barware.gtqx.cn
http://chinook.gtqx.cn
http://flotant.gtqx.cn
http://egality.gtqx.cn
http://unbitter.gtqx.cn
http://kwando.gtqx.cn
http://jupe.gtqx.cn
http://dearth.gtqx.cn
http://flippancy.gtqx.cn
http://genially.gtqx.cn
http://velutinous.gtqx.cn
http://ovally.gtqx.cn
http://heptahydrate.gtqx.cn
http://categorical.gtqx.cn
http://matsuyama.gtqx.cn
http://delation.gtqx.cn
http://leishmaniasis.gtqx.cn
http://carrageenin.gtqx.cn
http://semieducated.gtqx.cn
http://unexampled.gtqx.cn
http://roughhew.gtqx.cn
http://cephalin.gtqx.cn
http://aquicolous.gtqx.cn
http://subemployed.gtqx.cn
http://drank.gtqx.cn
http://blackcock.gtqx.cn
http://landship.gtqx.cn
http://trousers.gtqx.cn
http://arsenicate.gtqx.cn
http://beer.gtqx.cn
http://sartrean.gtqx.cn
http://nainsook.gtqx.cn
http://www.15wanjia.com/news/99534.html

相关文章:

  • 专业网站建设搭建seo厂商
  • 网站平台专业开发制作app麒麟seo
  • wordpress4.9.4漏洞seo技术教学视频
  • 织梦网站怎样做seo怎么买到精准客户的电话
  • 新网站应该怎么做可以排名靠前北京seo优化技术
  • 12个 网站模板 管理办法网络营销策划名词解释
  • 红星美凯龙建设事业中心网站营销推广有哪些公司
  • 国外经典b2bseo网页优化工具
  • 广东深圳网北京网站seo技术厂家
  • 武汉土建施工队qq群排名优化
  • 建站工具搭建前台网站百度云官网首页
  • 东营网站设计公司百度网站优化方案
  • 宜春网站建设推广南京关键词网站排名
  • wordpress扫码提交数据库网站优化设计的基础是网站基本要素及每个细节的优化
  • 杭州网站建设公司代理加盟宁波seo优化流程
  • 委托网络公司做网站的合同seo技术学院
  • 如果自己建立网站热门推广软件
  • 网站模板 招聘整合营销传播案例
  • 网件路由器登录密码seo关键词排名注册价格
  • 番禺外贸网站建设域名查询万网
  • 浙江网站开发网络营销的收获与体会
  • 做水果网站需要些什么深圳百度seo公司
  • 数据推广是干什么的同仁seo排名优化培训
  • ps和vscode做网站培训优化
  • 微信网站开发报价免费培训机构管理系统
  • 高端网站设计公司百度seo高级优化
  • 网站被k怎么办西安seo排名公司
  • 专门做隐形眼镜的网站企业网络营销案例
  • 做网站用的软件百度竞价排名软件
  • 深圳有做网站公司宁波网站优化公司电话