小
結
:
1.MFC
的使用方式
對
默
認
情況
選擇
的Run-time library
的影響(
以Debug
版本
為
例)
:
Not Using MFC //MLd:Debug Single-Threaded
(靜
態連
接LIBCD.LIB
庫
)
Use MFC in a Shared DLL //MDd: Debug Multithreaded DLL
(
動態連
接MSVCRTD.DLL
庫
)
Use MFC in a Static DLL //MTd:Debug Multithreaded
(靜
態連
接LIBCMTD.LIB
庫
)
2.
如果不使用MFC
,在Link
一
欄
一般會
連
接一系列Windows API
的
庫
檔案;如果使用MFC
,
這
些
連
接
庫
就會“
消失”
。
3.Debug
版本一般會有_DEBUG
的
預
定
義
,而Release
版本
則
定
義
NDEBUG
。
4.
使用Shared MFC
和Static MFC
相比,前者一般多一個_AFXDLL
的定
義
。默
認
使用的Run-time Library
也不一
樣
,前者
為
/MDd
,後者
為
/MTd
。
5.MFC
的普通DLL
項
目比MFC
的EXE
項
目,一般多_WINDLL
和_USRDLL
預
定
義
;
連
接參數多一個/dll
定
義
。
而
MFC
擴
展
DLL
項
目與
MFC
普通
DLL
項
目相比,
預
定
義
將
_USRDLL
換
成了
_AFXEXT
。
6.
不使用MFC
的Win32 DLL
與MFC DLL
相比,
預
定
義
少了_WINDLL
和_AFXDLL
,而
僅
保留了_USRDLL
。
7.
不使用MFC
的靜
態庫
有_LIB
的
預
定
義
。
8.#include <afxwin.h>
和#include <windows.h>
不能重
複
包含,前者用於MFC
程式,後者用於程式。
9.
為
了去掉Windows
頭
檔案中很少用到的定
義
,一般在stdafx.h
中,Win32
程式會定
義
#define WIN32_LEAN_AND_MEAN
,而MFC
程式會定
義
#define VC_EXTRALEAN
。
10.
作
為
本文的
應
用,改
變項
目參數
設
置,
實現
不同
類
型
項
目之
間
的
項
目
轉換
,如下:
MFC Exe <======> MFC DLL
|| ||
Win32 Exe <======> Win32 DLL