• Windows编程基础


    0x01.Windows编程入门

    windows编程是在软件开发的时候必须要调用到的api,微软官方已经打包好的
    可以在c,c++等其他程序开发调用api,也可以使用单独的创建win32项目

    #include <stdio.h>
    #include <windows.h>
    
    //这是win32的入口程序
    int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCMDshow)
    {
    
    }
    

    如果遇到某些错误的问题的话,可以使用GetLastError()来获取错误
    DWORD errorCode = GetLastError();

    例子:

    #include <stdio.h>
    #include <windows.h>
    
    //这是win32的入口程序
    int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdline, int nCMDshow)
    {
          TCHAR szContent[] = TEXT("内容");
          TCHAR szTitle[] = TEXT("标题");
          MessageBox((HWND)0, szContent, szTitle, -1);
          DWORD errorCode = GetLastError();
    }
    

    这时候就得到了错误,就可以在顶上那一行 -> 工具 ->错误查找
    然后输入错误码,就可以知道错在哪里了

    0x02. Win32 api的宽字节

    1、什么是Win32 API?有哪些?在哪里?

    主要是存放在 C : WINDOWSsystem32 下面所有的dll

    2、非常重要的几个DLL

    Kernel32.dll:最核心的功能模块,比如管理内存、进程和线程相关的函数等.

    User32.dll : 是Windows用户界面相关应用程序接口, 如创建窗口和发送消息等.

    GDI32.dll : 全称是Graphical Device Interface(图形设备接口), 包含用于画图和显示文本的函数
    比如要显示一个程序窗口,就调用了其中的函数来画这个窗口

    3、Win32 API中的宽字符和多字节字符

    Windows是使用C语言开发的,Win32 API同时支持宽字符与多字节字符.

    (1) 字符类型
    (2) 字符串指针

    
    char 	CHAR		PSTR(LPSTR) 指向多字节字符串
    
    wchar_t  WCHAR			PWSTR(LPWSTR) 指向宽字符串
    
    宏   TCHAR			宏  	PTSTR(LPTSTR)
    

    字符数组赋值

    
    CHAR cha[] = "中国";
    
    WCHAR chw[] = L"中国";
    
    TCHAR cht[] = TEXT("中国");
    
    

    为字符串指针赋值:

    PSTR pszChar = "china";				//多字节字符
    
    PWSTR pszWChar = L"china";				//宽字符
    
    PTSTR pszTChar = TEXT("china");				//如果项目是ASCII的 相当于"china" UNICODE 相当于L"china"
    

    4、各种版本的MessageBox

    MessageBoxA(0, "内容多字节", "标题", MB_OK);
    MessageBoxW(0, L"内容宽字节", L"标题", MB_OK);
    MessageBox(0, TEXT("根据项目字符集决定"), TEXT("标题"), MB_OK);
    Windows提供的API 凡是需要传递字符串参数的函数,都会提供两个版本和一个宏.
    

    0x03. Windows数据类型

    c语言是专门开发操作系统的语言,之前就是专门开发Linux,然后就所有都用c语言开发

    C语言数据类型:

    char      short      int
    char*     void       VOID*
    char*     const char*   .....
    

    Windows数据类型是在C语言的基础上的新的一个命名

    Windows数据类型

    BOOL      BYTE      CHAR
    CONST     DWORD     DWORD32
    DWORD64   FLOAT     HANDLE
    HICON     HINSTANCE HKEY
    HMODULE   HWND      INT
    PVOID     ..... 
    

  • 相关阅读:
    cdoj1325卿学姐与基本法
    HUAS 1476 不等数列(DP)
    BZOJ 1818 内部白点(离散化+树状数组)
    BZOJ 1816 扑克牌(二分)
    BZOJ 1801 中国象棋(DP)
    BZOJ 1791 岛屿(环套树+单调队列DP)
    BZOJ 1797 最小割(最小割割边唯一性判定)
    BZOJ 1789 Y形项链(思维)
    BZOJ 1787 紧急集合(LCA)
    BZOJ 1786 配对(DP)
  • 原文地址:https://www.cnblogs.com/0x7e/p/13813964.html
Copyright © 2020-2023  润新知