(4.2)
Use MFC in a Shared DLL
預
定
義
:與(4.1)
相比,增加了_WINDLL,_AFXDLL
的定
義
編譯
參數:沒有太大區
別
。
連
接參數:/nologo
/dll /incremental:yes /pdb:"Debug/Win32DllDemo.pdb"
/debug/machine:I386/out:"Debug/Win32DllDemo.dll"
/implib:"Debug/Win32DllDemo.lib" /pdbtype:sept
可以看出,(4.1)
裡
連
接的很多
庫
消失了,
這時
,
項
目4
變
成了
類
似於
項
目2
中的
設
置。
編
程
時
需要注意,
項
目4
的stdafx.h
僅
包含了<windows.h>
,此
時
如果要用MFC
的
類
,需要自己加入MFC
的幾個
頭
檔案(<afxwin.h>
、<afxext.h>
等),並且將#include <windows.h>
和DllMain
入口函數注
釋
掉!
(4.3)
Use MFC in a Static DLL
使用MFC DLL
的方式Shared
和Static
之
間
的區
別
與上述
項
目
類
似,不再做比
較
。
5.
Win32 Static Library
項
目
先行編譯頭
檔案stdafx.h(
可能沒有
這
個檔案):
不使用MFC
,
僅僅
#define WIN32_LEAN_AND_MEAN
,而如果使用MFC
,內容如下:
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afx.h>
#include <afxwin.h>
(5.1)
Not Using MFC
預
定
義
:WIN32,_DEBUG,_MBCS,_LIB
,新出
現
了符號_LIB
編譯
參數:/nologo
/MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB"
/Fp"Debug/W32StaPrehead.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD
/GZ /c
注意到使用的Run-time library
參數
為
/MLd
。
庫
參數:
這
個
項
目沒有Link
設
置
頁
,代替的是Library
頁
,參數如下:/nologo /out:"Debug/W32StaPrehead.lib"
(5.2)
Use MFC in a Shared DLL
預
定
義
:WIN32,_DEBUG,_WINDOWS,_MBCS,_AFXDLL
,與
項
目1
(MFC Exe
)
設
置相同。
編譯
參數:注意使用的Run-time library
參數
為
/MDd
。
庫
參數:沒有太大區
別
。
(5.3)
Use MFC in a Static DLL
編譯
參數:注意使用的Run-time library
參數
為
/MTd
。
6.
Win32 Application
項
目
先行編譯頭
檔案stdafx.h
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h> // Windows Header Files:
#include <stdlib.h> #include <malloc.h> #include <memory.h> #include <tchar.h> // C RunTime Header Files
出
現
了Win32
程式的入口函數WinMain
。
這
個
項
目,Project->settings->General
中
設
置使用MFC
的方式,一般
設為
Not Using MFC
,否
則
程式
結
構的改
動
比
較
大。從Not Using MFC
到使用MFC
的改
變
,
對連
接的
庫
的影響
類
似於
項
目4
(Win32 DLL
)。
(6.1) Not Using MFC
預
定
義
:WIN32,_DEBUG,_WINDOWS,_MBCS
編譯
參數:/nologo
/MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB"
/Fp"Debug/W32StaPrehead.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD
/GZ /c
注意到使用的Run-time library
參數
為
/MLd
。
連
接參數:kernel32.lib
user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo
/subsystem:windows /incremental:yes /pdb:"Debug/W32AppDemo.pdb" /debug
/machine:I386 /out:"Debug/W32AppDemo.exe" /pdbtype:sept
(6.2) Use MFC in a Shared DLL
編譯
參數:注意使用的Run-time library
參數
為
/MDd
。
(6.3) Use MFC in a Static DLL
編譯
參數:注意使用的Run-time library
參數
為
/MTd
。