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 .....