C技巧 VC中編譯 執行程式的知識點 4

2021-12-29 21:08:00 字數 1285 閱讀 7352

c技巧:vc中編譯、執行程式的知識點(4)

5、mfc的庫檔案

mfc的庫可以靜態鏈結,也可以動態鏈結。靜態庫和動態庫又有debug和release,ansi和unicode版本之分。

靜態mfc庫主要有:

ansi debug nafxcwd.lib

ansi release nafxcw.lib

unicode debug uafxcwd.lib

unicode release uafxcw.lib

動態鏈結庫主要有;

ansi debug mfcxxd.lib (core,mfcxxd.dll),

mfcoxxd.lib (ole,mfcoxxd.dll),

mfcdxxd.lib (database,mfcdxxd.dll),

mfcnxxd.lib (network,mfcnxxd.dll),

mfcsxxd.lib (static)

ansi release mfcxx.lib (combined,mfcxx.dll)

mfcsxx.lib (static)

unicode debug mfcxxud.lib (core,mfcxxud.dll),

mfcoxxud.lib (ole,mfcoxxud.dll),

mfcdxxud.lib (database,mfcdxxud.dll),

mfcnxxud.lib (network,mfcnxxud.dll),

mfcsxxud.lib (static)

unicode release mfcxxu.dll (combined,mfcxxu.dll),

mfcsxxu.lib (static)

上面的lib檔案除了mfcsxx(d、u、ud).lib以外都是導入庫。

mfc動態鏈結庫版本也需要靜態鏈結一些檔案,這些檔案就放在mfcsxx(d、u、ud).lib中。例如包含_twinmain的appmodul.cpp。

6、結束語

研究這些問題的動機是想弄清楚我們的程式是如何裝載、執行的。但是,由於windows不是開源平台,考試大提示只能研究到pe檔案(windows上可執行檔案的格式)。entry point、subsystem都是pe檔案頭的一部分。

windows在進入pe檔案的entry point之前做了些什麼,就看不到了,只能大概推測:應該是建立乙個程序,裝載pe檔案和所有需要的dll,初始化c變數,然後從某個起點函式開始執行。不同的subsystem,應該有不同的起點。呼叫這個起點函式時應該傳入pe檔案的entry point位址。

在VC中編譯 執行程式的小知識點

1 run time library run time library是編譯器提供的標準庫,提供一些基本的庫函式和系統呼叫。我們一般使用的run time library是c run time libraries。當然也有standard c libraries。c run time librari...

C語言 在命令列編譯執行程式

開始 1.在mac和linux上寫c語言之前,首先要看看是否安裝了編譯器 在終端下輸入gcc後回車進行檢測,如果安裝過,將提示 clang error no input files 沒有輸入檔案 在centos下直接yum y install gcc gcc c y表示將自動選擇y 2.現在開始愉快...

python如何呼叫c編譯好可執行程式

python如何呼叫c編譯好可執行程式 以下總結出幾種在python 中呼叫 c c 的方法 發現做便捷的是使用popen from os import popen popen home pengyan downloads vic sanxia vicnl g home pengyan downlo...