• Win32 Windows规划 三


    一、NMAKE 和 Makefile

    1.1  NMAKE - 命令解释器。 依据Makefile文件里定义的脚本。完毕项目的编译等操作

    1.2 Makefile - 定义编译、连接等脚本语言

    1.3 Makefile 文件的使用

    1.3.1 基本的语法规则

    window.exe:window.obj //依赖行

        cl.exe window.c /c   //命令行

       link.exe window.obj user32.lib

    window.exe 的依赖项是window.obj,假设window.obj被又一次改写 window.exe将又一次生成

    通过时间戳(time stamp)推断程序是否须要又一次编译连接,要又一次编译连接

    假设当文件改动最后时间与时间戳不同,将会又一次编译链接.

    1.3.2  运行过程

    1 NMAKE 首先找到第一个依赖行。依据依赖行之间的关系,建立依赖树。比如:

    A:B

    B:C

    C:D

    NMAKE会建立相应的依赖树。

    A

    |-B

       |-C

          |-D

    2 在树建好后 NMAKE会首先运行D的命令行。然后依次运行父节点的命令行,

    3 在A的命令行运行结束后,退出NMAKE

    4 假设须要运行指定依赖行。须要在运行NMAKE时添加依赖行的名称

     1.4 使用

       1.4.1  NAMKE  指定文件

       1.4.2 使用缺省的文件名称
    假设make文件名称使用makefile 直接使用nmake命令

    二、字符编码

    MessageBox : MessageBoxA MessageBoxW

    2.1 编码的历史

    2.1.1 ASCII  0~127  7位表示

    2.1.2 ASCII 扩展码 8位 表示

    代码页:通过代码页来切换相应的字符

    2.1.3  双字节字符集 DBCS

    使用一个或两个字节表示字符

          2.1.4 Unicode

    所有使用2个字节表示字符

    内存/硬盘等资源占用大

    2.2 C语言和编码

    2.2.1 单字节字符和字符串

    char c =  'A';

    char * pc = "ABCD";

    2.2.2 宽字节的字符

    wchar_t cText = 'A';

    wchar_t*pszText =  L"ABCD";

    2.2.3 相关函数

    单字节字符的函数。 相应有多宽字节的函数。

    strlen wcslen mbslen

    printf  wprintf

    2.2.4 TCHAR

    为了程序中能够方便的支持unicode和多字节字符等,所以使用TCHAR来定义字符和字符串

    更具_UNICODE宏开关会将TCHAR编译成不同字符类型
    #define unicode

    #ifndef unicode 
    typedef char tchar
    #define __t(x) x
    #else
    typedef wchar_t tchar
    #define __t(x) l##x
    #endif

    使用时须要添加TCHAR.H头文件支持,使用_UNICODE 宏开福安进行编译

    定义方式:

    TCHAR* pszText = __T( "ABCDEF" );

    2.2.5 Unicode的控制台打印

    WriteConsole

    2.3 Win32 程序与编码

    2.3.1 Win32 API 的定义

    每一个API对多字节和UNICODE分别有不同的版本号

    MessageBox

    MessageBoxA 多字节

    MessageBoxW UNICODE字符

         2.3.2 字符转换

    MultiByteToWideChar

    WideCharToMultiByte

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    flask强大的第三方组件之falsk-sqlalchemy
    flask 外键关系和多对多查询
    flask sqlalchemy 单表查询
    functools模块
    面试题
    ansible git
    python 操作 表格
    matplotlib
    node,npm,webpack,vue-cli模块化编程安装流程
    Webpack
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4904172.html
Copyright © 2020-2023  润新知