Win32 SDK基礎(chǔ)(一)之Windows程序分類以及庫和頭文件所在目錄的詳解

一、windows程序分類

1、控制臺程序

windows的dos程序,沒有自己的窗口,需要借助dos窗口進行用戶交互,主函數(shù)


int?main()  {  ????return?0;  }

2、windows窗口程序

可見的windows系統(tǒng)下的程序基本都屬于這種,列入w函數(shù)、excel等等,主函數(shù):

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

3、動態(tài)鏈接庫dll

依附于宿主程序調(diào)用執(zhí)行,自己無法執(zhí)行,宿主程序調(diào)用其中的函數(shù)后才會進內(nèi)存,主函數(shù):

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

4、函數(shù)庫程序lib

無入口函數(shù),無法執(zhí)行,也就無法進內(nèi)存,宿主函數(shù)直接從硬盤上讀取代碼,然后復制代碼副本到自己的進程中。

二、VC下編譯工具分類

1、編譯器CL.exe

作用是將源代碼翻譯成目標代碼

所在目錄:

C:Program?Files?(x86)Microsoft?Visual?Studio?14.0VCbinCL.exe

2、連接器LINK.exe

作用是將目標代碼、庫連接生成最終文件。

所在目錄:

C:Program?Files?(x86)Microsoft?Visual?Studio?14.0VCbinLINK.exe

3、資源編譯器RC.exe

作用是將資源編譯,最終通過連接器存入最終文件

所在目錄(vs2015下)::

C:Program?Files?(x86)Microsoft?SDKsWindowsv7.1ABinx64RC.exe

三、常見的VC的庫

1、kernel32.dll

提供了線程、進程、內(nèi)存管理等核心的API

2、user32.dll

提供了窗口、消息等API

3、gdi32.dll

提供了函數(shù)的API

以上三種庫的路徑:

C:WindowsSystem32

四、VC下標準的頭文件

1、windef.h

windows的函數(shù)

2、winbase.h

包含kernel32.dll所有API的聲明

3、wingdi.h

包含所有g(shù)di32.dll的API的聲明

4、winuser.h

包含所有user32.dll的API的聲明

5、winnt.h

包含對UNICODE函數(shù)的支持

6、windows.h

所有windows頭文件的集合

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

C:Program?Files?(x86)Microsoft?SDKsWindowsv7.1AInclude

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊10 分享