Window应用程序的类型
--控制台程序Console
DOS程序,本身没有窗口,通过Windows DOS窗口执行
--窗口程序
拥有自己的窗口,可以与用户交互
--库程序
存放代码、数据的程序,执行文件可以从中取出代码执行和或获取数据
-静态库程序
扩展名LIB,在执行文件执行时从中获取代码
-动态库程序
扩展名DLL,在编译链接程序时,讲函数地址放入到执行文件中
三种应用程序的对比
--入口函数
控制台程序--main
窗口程序--WinMain
动态库程序--DllMain
静态库程序--无入口函数
--文件存在方式
控制台程序,窗口程序--EXE文件
动态库程序--DLL文件
静态库程序--LIB文件
--执行方式
控制台程序--在DOS窗口内执行
窗口程序--拥有自己的窗口,在自己的窗口内执行
动态库程序--本身无法执行,由可执行程序或其他DLL调用
静态库程序--执行不存在,代码会嵌入到可执行文件或DLL中
VC编译工具
--编译器cl.exe 讲源代码(.c或.cpp)编译成目标代码(汇编.obj)
--链接器link.exe 将目标代码(.obj),库链接生成最终文件.exe|.dll|.lib(二进制文件)
--资源编译器rc.exe 将资源编译,最终通过链接器存入最终文件.rc
Windows库和头文件
--Windows库
kernel32.dll--提供核心的API,例如进程、线程、内存管理等。
user32.dll--提供了窗口、消息等API。
gdi32.dll--绘图相关的API。
--头文件
Windows.h--所有头文件的集合
windef,h--windows数据类型
winbase.h--kernel32的API
wingdi.h--gdi32的API
winuser.h--user32的API
winnt.h--UNICODE字符集支持
int WinMain(
HINSTANCE hInstance,//当前进程的实例句柄
HINSTANCE hPrevInstance,//当前程序前一个实例句柄(hPrevInstance-Win32下,一般为NULL)
LPSTR lpCmdLine,//命令行参数字符串
int nCmdShow//窗口显示方式
);
int MessageBox(
HWND hWnd,//父窗口句柄
LPCTSTR lpText,//显示在消息框中的文字
LPCTSTR lpCaption,//显示在标题栏中的文字
UINT uType//消息框中的按钮、图标显示类型
);//返回点击的按钮ID
编译程序
cl.exe -? 显示cl的帮助
cl.exe /c 只编译不链接
cl.exe /Tc 编译C文件
cl.exe /Tp 编译C++文件
链接程序
link.exe xxx.obj xxx.lib
例子:link.exe .obj user32.lib--user32.lib链接的库文件
编译资源的文件-.rc资源脚本文件
编译rc文件 rc.exe
将资源链接到程序中 link.exe

Windows通用知识讲解一的更多相关文章

  1. Windows通用知识讲解二

    NMAKE Makefile是一个解释执行的工具,根据Makefile文件中的定义,编译和链接程序,最终生成文件. Makefile(Windows下是.mak文件) 定义编译和链接等操作的脚本文件( ...

  2. Windows 通用应用尝试开发 “51单片机汇编”总结

    一.前言 终于完成windows通用应用“51单片机汇编”,半年前开始玩WindowsPhone开发的第一个真正意义上的App(还很多缺点=_=).开发从1月中旬考完试到今天,期间实习了半个月,玩了几 ...

  3. Html基础知识讲解

    Html基础知识讲解 <title>淄博汉企</title> </head> <body bgcolor="#66FFCC" topmar ...

  4. Windows通用应用平台

    什么是 UWP? 很多程序员都有一个梦想:希望自己开发的软件能够轻而易举的在所有平台上运行,而不是把同样的需求,用不同的技术.工具重新开发才能够运行在所有平台上.这就是跨平台,很多软件从业者都在为这个 ...

  5. python基础知识讲解——@classmethod和@staticmethod的作用

    python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...

  6. iPhone激活策略知识讲解:官方解锁和黑解

    iPhone激活策略知识讲解:官方解锁和黑解 [复制链接]     LEECHY 该用户从未签到 1372 XY豆 438 帖子 440 贡献 苹果花 积分 2250 发消息 电梯直达 楼主    发 ...

  7. Tido c++线段树知识讲解(转载)

    线段树知识讲解 定义.建树.单点修改.区间查询         特别声明:如上的讲解说的是区间最大值 如果想要查询区间和 只需要改变一下建树和查询的代码就行了,如下 其他根据自己的需要进行修改即可

  8. java Reflection(反射)基础知识讲解

    原文链接:小ben马的java Reflection(反射)基础知识讲解 1.获取Class对象的方式 1.1)使用 "Class#forName" public static C ...

  9. Appium python自动化测试系列之Android知识讲解(三)

    ​3.1 ADB工具讲解 3.1.1 什么是ADB呢? 我们不去解释官方语言的翻译,给大家说一个通熟易懂的说法,ADB我理解为他就是电脑和手机连接的桥梁.此连接不是充电的连接,大家不要混淆,说他是一个 ...

随机推荐

  1. python练习笔记——完全数(1000以内的)

    完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数为“完 ...

  2. RAC安装GI时运行root.sh脚本结果

    第一节点运行root.sh脚本的结果: # /u01/app//grid/root.sh Performing root user operation for Oracle 11g The follo ...

  3. Android调试技巧之Eclipse行号和Logcat

    很多初入Android的开发者可能会发现经常遇到Force Close或ANR这样的问题,一般我们通过Android系统的错误日志打印工具Logcat可以看到出错的内容,今天一起来说下如何通过 Ecl ...

  4. 深度解析(一六)Floyd算法

    Floyd算法(一)之 C语言详解 本章介绍弗洛伊德算法.和以往一样,本文会先对弗洛伊德算法的理论论知识进行介绍,然后给出C语言的实现.后续再分别给出C++和Java版本的实现. 目录 1. 弗洛伊德 ...

  5. ubuntu16.4安装中文输入法

    ibus输入法 Chinese语言包安装 首先需要给Ubuntu16.04安装Chinese语言包支持.  如上图点击其中的Install/Remove Languages…,这个对话框是通过syst ...

  6. python 例程的一个好例子

    用例程来写一个求平均值的算法 #!/usr/local/python/bin/python3 def FunCore(): total=0 counter=0 average=None tmp=yie ...

  7. unity, mesh Collider

    关闭mesh Renderer以便查看mesh Collider "For Unity 5, we must also select "Convex" on the Me ...

  8. Spring里的FactoryBean和BeanFactory有啥区别?

    分别看这俩文章就知道了 Spring的FactoryBean使用 Spring加载xml配置文件的方式 ApplicationContext

  9. Qt 自学QGraphicsItem要点 积累

    1.在创建QGraphicsItem子类的时候,想要实现自己绘图,一般是重新实现boundingRect()和paint()函数,如果不重新实现shape(),基类的实现将会退而使用 bounding ...

  10. jQuery $.extend()使用方法

    $.extend()使用方法总结. jQuery为开发插件提拱了两个方法,各自是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.ex ...