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. 什么是Asterisk,它如何帮助我们的呼叫中心?

    如今的呼叫中心与过去的呼叫中心有很大差异.过去,一间房屋或一座大楼,装上硬接线的POTS电话,招聘几名员工就可以建立一个呼叫中心.如今,这样的情形已经一去不复返,因为有许多新技术让呼叫中心变得更像是一 ...

  2. linux上创建PV/VG/LV

    LVM的整体思路是: 首先创建PV-->然后创建VG并将多个PV加到VG里-->然后创建LV-->格式化分区-->mount分区 1.创建PV pvcreate /dev/sd ...

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

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

  4. 开启Win7多用户登录远程桌面

    原文链接: http://blog.sina.com.cn/s/blog_7e5da5b101014fc4.html 多用户登陆破解:(支持win7 x86 & win7x64)在 Windo ...

  5. Python 中的 sys.argv 用法

    sys.argv是获取运行python文件的时候命令行参数 下面的代码文件是a.py,当我不用IDE工具,只用命令行窗口运行的时候,进入文件所在目录,输入:python a.py 输出结果如下 imp ...

  6. puppeteer (Nodejs版selenium )快速入门

    官网 https://pptr.dev/ api 与 教程: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.mdhttp ...

  7. 转 CAS实现SSO单点登录原理

    原文链接   http://m.blog.csdn.net/hxpjava1/article/details/74019017 CAS 简介 1. 1.1.  What is CAS ? CAS (  ...

  8. 在 Chrome 开发者工具中调试 node.js

    命令行工具 devtool ,它可以在 Chrome 的开发者工具中运行 Node.js 程序. 下面的记录显示了在一个 HTTP 服务器中设置断点的情况. 该工具基于 Electron 将 Node ...

  9. 源码编绎的时候报错 tengine-2.1.0 error: the HTTP rewrite module requires the PCRE library.

    ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the mo ...

  10. MD5加密 时间差 流水号等方法

    /// <summary> /// 使用TimeSpan计算两个时间差 /// </summary> /// <param name="DateTime1&qu ...