Windows程式設計基礎
阿新 • • 發佈:2020-10-14
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 : \WINDOWS\system32 下面所有的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 .....