首頁  >  文章  >  運維  >  Win32 SDK基礎(一)之Windows程式分類以及庫與頭檔所在目錄的詳解

Win32 SDK基礎(一)之Windows程式分類以及庫與頭檔所在目錄的詳解

黄舟
黄舟原創
2017-06-06 09:35:093673瀏覽

一、windows程序分類

1、控制台程序

windows的Dos程序,沒有自己的窗口,需要藉助Dos窗口進行用戶交互,主函數

int main()
{
    return 0;
}

2、windows視窗程式

可見的windows系統下的程式基本上都屬於這種,列入word、excel等等,主函數:

int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{...}

3、動態連結函式庫dll

依附於宿主程式呼叫執行,自己無法執行,宿主程式呼叫其中的介面後才會進內存,主函數:

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{...}

4、靜態庫程式lib

無入口函數,無法執行,也就無法進內存,宿主函數直接從硬碟上讀取程式碼,然後複製程式碼副本到自己的進程。

二、VC下編譯工具分類

1、編譯器CL.exe

#作用是將原始碼翻譯成目標碼

所在目錄:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe

2、連接器LINK.exe

作用是將目標程式碼、函式庫連線產生最終檔案。

所在目錄:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\LINK.exe

3、資源編譯器RC.exe

作用是將資源編譯,最後透過連接器存入最終檔案

所在目錄(vs2015下)::

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\x64\RC.exe

三、常見的VC的函式庫

1、kernel32.dll

提供了執行緒、行程、記憶體管理等核心的API

2、user32.dll

提供了視窗、訊息等API

3、gdi32.dll

提供了繪圖的API

以上三種函式庫的路徑:

C:\Windows\System32

##四、VC下標準的頭檔

1、windef.h

windows的

資料型別

2、winbase.h

包含kernel32 .dll所有API的宣告

3、wingdi.h

包含所有gdi32.dll的API的宣告

4、winuser.h

#包含所有user32.dll的API的宣告

5、winnt.h

包含對UNICODE

字元集的支援

6、windows.h

所有windows頭檔的集合

以上所有的頭檔所在目錄(vs2015下):

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\

以上是Win32 SDK基礎(一)之Windows程式分類以及庫與頭檔所在目錄的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn