• Windows通用知识讲解一


    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 1.obj user32.lib--user32.lib链接的库文件
    编译资源的文件-.rc资源脚本文件
    编译rc文件 rc.exe
    将资源链接到程序中 link.exe
  • 相关阅读:
    codevs 3160 最长公共子串(SAM)
    noi2018d2t1
    后缀自动机
    [Scoi2014]方伯伯的玉米田
    【NOI2017】泳池
    【BZOJ2560】串珠子
    POJ 1737 统计有n个顶点的连通图有多少个 (带标号)
    【BZOJ3590】[Snoi2013]Quare 状压DP
    【BZOJ1095】【ZJOI2007】捉迷藏 [动态点分治]
    BZOJ1316: 树上的询问
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6675990.html
Copyright © 2020-2023  润新知