laoma634980838

导航

windows32程序基础

一 Windows编程基础

 1 Win32应用程序的基本类型
 
   1.1 控制台程序
      不需要完善的Windows窗口,可以使用DOS窗口
      的方式显示。
   1.2 Win32窗口程序
      包含窗口的程序。可以通过窗口与程序进行交互。
   1.3 Win32库程序
      提供已有的代码,供其他程序使用。
      动态库:DLL 是在执行的时候可以加载的程序。
      静态库:LIB 是在编译链接是使用的程序。
   1.4 对比
      1.4.1 程序的入口函数不同
         控制台:main
         Win32窗口程序:WinMain
         动态库DLL:DllMain
         静态库LIB:无
        
      1.4.2 编译链接后存在的形式不同
         控制台和Win32窗口程序:EXE文件,可以执行
         动态库DLL:DLL文件,无法执行
         静态库LIB:LIB文件,无法执行
        
      1.4.3 执行结果不同
         控制台:使用DOS窗口,自己没有窗口。
         Win32窗口程序:会产生自己的窗口,
            可以将结果输出或者从窗口接受输入。
         动态库DLL:自己无法执行,提供可以执行
           的代码,当EXE等程序执行时,可以使用
           这些代码.执行时,该库必须在指定的路径.
         静态库LIB: 自己无法执行,提供给程序在
           编译链接时使用,将库中的代码嵌入到
           程序当中.执行时,不需要该库存在.
     

二 Win32窗口程序和编译环境

  2.1 开发和编译环境
    VC1.5 - VC6.0(2008) - VC10.0(2010)
 
    2.1.1 编译器 CL.EXE
      将原代码编译目标代码. OBJ文件.
    2.1.2 链接器 Link.EXE
      将OBJ文件和库函数链接.生成EXE.
    2.1.3 资源编译器 rc.exe
      将资源脚本编译成可以链接的文件(RES).
   
  2.2 头文件和库
    2.2.1 头文件 windows.h包含了windows
      常用的定义等.其他,还包含了一些其他的
      头文件:
    windef.h - 定义了各种的数据类型
    winbase.h- 定义了kernel的相关函数:kernel32.lib - 提供进程/线程/内存等等
    wingdi.h - 定义了绘图和文字:gdi32.lib  - 提供绘图/文字等。
    winuser.h- 窗口 控件等函数:user32.lib - 包括窗户/界面等等.
    winnt.h - 提供Unicode支持

    2.3入口函数
     int WinMain(
        HINSTANCE hInstance, //hInstance -  应用程序的实例句柄
        HINSTANCE hPrevInstance,//hPrevInstance - 该应用程序的前一个实例句柄,一般为0
        LPSTR pszCmdLine,//pszCmdLine - 命令行参数
        int  nShowCmd )//nShowCmd - 窗口的显示方式
                    
  2.4 编译环境的准备
 
    在VC98的BIN目录下VCVARS32.BAT   :在不用Visual C++的情况下,可以把此文件(VS98下的bin目录下)直接拖进cmd控制台,进行环境路径配置
    
  2.5 编译CL.EXE(VS98下的bin目录下)
    CL的常用选项
     /c 只编译不链接
     /TC 编译C文件   :如果不指定,CL会根据文件类型自动区分
     /TP 编译C++文件  :如果不指定,CL会根据文件类型自动区分
     /I 头文件所在路径
     字符大小写敏感
  2.6 链接LINK.EXE(VS98下的bin目录下)
     LINK常用选项:
     /out:文件名,链接成指定文件名的程序
     /LIBPATH:LIB文件存放的路径, /LIBPATH:"E:\XXX"
     /SUBSYSTEM: CONSOLE/WINDOW
    字符大小写不敏感
 
  2.7 执行
     正常执行或带参数执行

三 资源的处理

 3.1 资源和资源脚本
    资源:ICON/CUSRUR/BITMAP/MENU......
    资源脚本: 扩展名为rc文件。
 3.2 编译资源
    使用rc.exe编译资源,生成RES文件(rc.exe不在VS98下的bin目录下)
 3.3 链接资源
    使用link.exe将RES文件链接到程序当中
 3.4 ICON的使用
   LoadIcon从指定程序中加载ICON资源。

posted on 2012-11-17 09:32  马聪  阅读(392)  评论(0编辑  收藏  举报