1. 程式人生 > 實用技巧 >Windows程式設計基礎

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