1.Windows编程基础

知识点:
1.Windows应用程序的类型
2.三种应用程序的对比
3.Windows开发工具和库
4.Windows库和头文件
5.HelloWorld程序的相关函数
6.编译、链接和执行
7.编写第一个窗口程序(HelloWorld版)
8.资源的使用
9.NMAKE 和 Makefile
10.Makefile的语法
11.DBCS和UNICODE编码的区别
12.字符集的应用
 
1.Windows 应用程序的类型
–控制台程序 Console
–窗口程序
–库程序
   DOS程序,本身没有窗口,通过Windows DOS窗口执行
  拥有自己的窗口,可以与用户交互
存放代码、数据的程序,执行文件可以从中取出代码执行和获取数据
 -静态库程序
   扩展名LIB,在执行文件执行时从中获取代码
-动态库程序
  扩展名DLL,在编译链接程序时,将函数地址放入到执行文件中
2.三种应用程序的对比
      -入口函数
  控制台程序 - main
  窗口程序 - WinMain
  动态库程序 - DllMain
  静态库程序 - 无入口函数
      -文件存在方式
      控制台程序、窗口程序 - EXE文件
  动态库程序 - DLL文件
  静态库程序 - LIB文件
  -执行方式
  控制台程序 - 在DOS窗口内执行。
  窗口程序 - 拥有自己的窗口在自己的窗口内执行.
  动态库程序 - 本身无法执行,由可执行程序或其他的DLL调用
  静态库程序 - 执行不存在,代码会嵌入到可执行文件或DLL等中。
3.Windows开发工具和库
开发工具  Visual Studio C++
    VC1.5 - VC6.0 – VC2005-VC2010( 10.0 )
VC的编译工具
    编译器CL.EXE   将源代码编译成目标代码
    链接器LINK.EXE   将目标代码、库链接生成最终文件
    资源编译器RC.EXE   将资源编译(.rc),最终通过链接器存入最终文件
4.Windows库和头文件
- Windows库
    kernel32.dll - 提供了核心的API,例如进程、线程、内存管理等。
    user32.dll - 提供了窗口、消息等API
    gdi32.dll  - 绘图相关的API
-头文件
    windows.h - 所有windows头文件的集合
    windef.h - windows数据类型
    winbase.h - kernel32的API
    wingdi.h - gdi32的API
    winuser.h - user32的API
    winnt.h - UNICODE字符集支持
5.HelloWorld程序的相关函数
int WINAPI WinMain(
HINSTANCE hInstance,//当前程序的实例句柄
HINSTANCE hPrevInstance, //当前程序前一个实例句柄
LPSTR lpCmdLine,//命令行参数字符串
int nCmdShow //窗口的显示方式
);
hPrevInstance - Win32下,一般为NULL
int MessageBox(
HWND hWnd,//父窗口句柄
LPCTSTR lpText, //显示在消息(提示)框中的文字
LPCTSTR lpCaption, //显示在标题栏中的文字
UINT uType //消息框中的按钮、图标显示类型
);// 返回点击的按钮ID
6.编译、链接和执行
编译环境准备
   VC98\BIN\VCVARS32.BAT
编译程序 - CL
    CL.EXE -? 显示CL的帮助
     /c  只编译不链接
    /Tc 编译C文件
    /Tp 编译C++文件
 
链接程序 - LINK
     LINK.EXE xxx.obj xxx.lib 
执行
7.编写第一个窗口程序(HelloWorld版)
编写窗口程序的步骤:
1 定义WinMain函数
2 定义窗口处理函数 (自定义,处理消息)
3 注册窗口类(向XP系统写入一些数据)
4 创建窗口(在内存中创建窗口) 
5 显示窗口(根据内存中数据,在显示器中将窗口图像绘制出来)
6 消息循环(提取/翻译/派发消息)
7 消息处理
 
8.资源的使用
编写资源的文件 -.rc资源脚本文件
编译rc文件 - RC.EXE
将资源链接到程序中 - LINK.EXE
 
9.NMAKE 和 Makefile
NMAKE
Makefile的一个解释执行的工具,根据   Makefile文件中的定义,编译和链接程 序,最终生成目标文件.
 Makefile
   定义编译和链接等操作的脚本文件(把项目的处理命令写入),一般对整个项目进行处理。
 
10.Makefile的语法
HELLO:依赖行
    cl.exe hellownd.c /c//命令行
     rc.exe hellownd.rc//命令行
    link.exe hellownd.obj hellownd.res  user32.lib //命令行
 
Makefile文件中可以有多个依赖行。
执行方式
NMAKE首先找到第一个依赖行
检查依赖行的依赖项,如果发现依赖项,首先执行依赖项命令行
执行完所有依赖项命令后,再执行自己的命令行。
 
11.DBCS和UNICODE编码的区别
DBCS字符编码:
   A   我       是       程      序      员
  01 0203  0405  0607 0809 0A0B
  但是解析时,可能为:
  01     02030405060708090A0B
  0102    030405060708090A0B
UNICODE编码:
   A     我       是       程      序     员
0001 0203  0405  0607 0809 0A0B 
 不存在解析的问题
 
12.字符集的应用
宽字节字符
wchar_t 每个字符占2个字节
char  每个字符占1个字节
    wchar_t 实际是 unsigned short 类型,定义时,需要增加“L”,通知编译器按照双字节编译字符串,采用UNICODE编码。
  需要使用支持 wchar_t 函数操作宽字节字符串。例如:
     wchar_t * pwszText = L"Hello wchar";
         wprintf( L"%s\n", pwszText );
TCHAR
#ifdef  UNICODE  // r_winnt
   typedef WCHAR TCHAR, *PTCHAR;
   #define __TEXT(quote) L##quote 
 #else
   typedef char TCHAR, *PTCHAR;
   #define __TEXT(quote) quote   
 #endif
UNICODE字符打印
 printf对UNICODE字符打印支持不完善。
 在Windows下使用WriteConsole API打印UNICODE字符
 
 
 
 
 

转载于:https://www.cnblogs.com/mrwong/p/3973974.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值