Microsoft Visual C++ 6.0 各类工程配置说明(一)

1.    基于 对话 框( / 文档 / 多文档)的 MFC 程序

#include <afxdtctl.h>     // MFC support for Internet Explorer 4 Common

#include <afxwin.h>      // MFC core and standard components

#include <afxext.h>      // MFC extensions

#include <afxdisp.h>     // MFC Automation classes

#define VC_EXTRALEAN     // Exclude rarely-used stuff from Windows headers

stdafx.h 预编译头 文件

afxext.h 声明MFC 一些 (CBitmapButton 、CControlBar 、CSplitterWnd 等)

afxdisp.h 中声明了Ole 的几个 (COleException 、COleVariant 等)

afxwin.h 声明MFC 封装的一些很基本的 (CWnd 、CView 、CButton 、CDC 等)afxdtctl.h 声明几个控件 (CImageList 、CMonthCalCtrl 、CDateTimeCtrl 等)Controls

afxcmn.h 声明MFC 一些控件(CListCtrl 、CProgressCtrl 、CToolTipCtrl 等)

#include <afxcmn.h>     // MFC support for Windows Common Controls

#ifndef _AFX_NO_AFXCMN_SUPPORT
#endif // _AFX_NO_AFXCMN_SUPPORT

(1.1)Use MFC in a Shared DLL
Debug
版本:
:WIN32,_DEBUG,_WINDOWS,_AFXDLL,_MBCS
编译 参数:/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"Debug/" /Fp"Debug/ExeDlg.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ      /c
接参数:/nologo /subsystem:windows /incremental:yes /pdb:"Debug/ExeDlg.pdb" /debug /machine:I386 /out:"Debug/ExeDlg.exe" /pdbtype:sept
Release 版本:
:与Debug 版本相比,将_DEBUG 替 成了NDEBUG
编译 参数:/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/ExeDlg.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c
接参数:/nologo /subsystem:windows /incremental:no /pdb:"Release/ExeDlg.pdb" /machine:I386 /out:"Release/ExeDlg.exe"
(1.2)Use MFC in a Static Library
Debug 版本:
:与(1.1) 相比,少了_AFXDLL
编译 参数:将/MDd (使用Run-time library: Debug Multithreaded DLL ) 成了/MTd (使用Run-time library: Debug Multithreaded )
接参数:与(1.1) 相同
Release 版本:
编译 参数/MD (使用Run-time library: Multithreaded DLL ) 成了MT (使用Run-time library: Multithreaded )
***
注:以上 编译 / 接参数含 如下(更多的, 参考Msdn ):
/nologo :抑制信息在
编译 或者 在Output Window 出;      /MD :运行 时库 使用MSVCRT.DLL ;      /W3 : 编译时显 Warning 级别为 3 ;      /Gm :Enable Minimal Rebuild ,一 减少重 编译 选项 ;     /GX :Enable Exception Handling ;        /ZI : 置Debug 信息保存的数据 文件.PDB 中;       /Od :Disable 代 码优 化;        /FR :生成.SBR 文件,包含有符号信息;          /Fp :命名生成的 预编译头 文件;        /Yu :指定 预编译头 文件。
2.MFC DLL

预编译头 文件stdafx.h :
#define VC_EXTRALEAN       // Exclude rarely-used stuff from Windows headers
#include <afxwin.h>            // MFC core and standard components
#include <afxext.h>            // MFC extensions
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxole.h>            // MFC OLE classes
#include <afxodlgs.h>          // MFC OLE dialog classes
#include <afxdisp.h>           // MFC Automation classes
#endif // _AFX_NO_OLE_SUPPORT
#ifndef _AFX_NO_DB_SUPPORT
#include <afxdb.h>               // MFC ODBC database classes
#endif // _AFX_NO_DB_SUPPORT
#ifndef _AFX_NO_DAO_SUPPORT
#include <afxdao.h>             // MFC DAO database classes
#endif // _AFX_NO_DAO_SUPPORT
#include <afxdtctl.h>           // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>           // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
增加了两个OLE 的
文件和两个数据 文件
(2.1) Use MFC in a Shared DLL
Debug 版本:
:WIN32,_DEBUG,_WINDOWS,_WINDLL,_AFXDLL,_MBCS,_USRDLL ,与MFC Exe 程序相比,增加了_WINDLL 和_USRDLL
编译 参数:与MFC Exe 没有太大区
接参数:/nologo /subsystem:windows /dll /incremental:yes /pdb:"Debug/MFCDll.pdb" /debug /machine:I386 /def:"./MFCDll.def" /out:"Debug/MFCDll.dll" /implib:"Debug/MFCDll.lib" /pdbtype:sept
与MFC Exe 相比,增加了/dll 定
,以及/def:"./MFCDll.def" 和/implib:"Debug/MFCDll.lib" 。 注意:其中 MFCDll 测试 目名字,非 DLL 名字。从 目的文件上看, 目比 MFC Exe 生一个 .def 的文件用于定 义导 出函数。 Release 版本与Debug 版本的区 别类 目1 中的比 (上了_AFXDLL 定 )。
(2.2) Use MFC in a Static DLL
与(2.1) 的区
,主要在使用的Run-time library 型上,与 目1 中的比
3.MFC Extension DLL

预编译头 文件stdafx.h 内容与 目2 相同。
(3.1) Use MFC in a Shared DLL
Debug 版本:
:WIN32,_DEBUG,_WINDOWS,_MBCS,_AFXEXT,_WINDLL,_AFXDLL ,与 目2 相比,将_USRDLL 成了_AFXEXT 。
编译 参数:与上述 目没有太大区
接参数:与 MFC DLL 目相似
Release
版本与 Debug 版本的区 别类 1 中的比 (上了 _AFXDLL )。
(3.2) Use MFC in a Static DLL
似以上 目的比
( 注:以下
目均以Debug 版本 述。)
4.Win32 DLL

预编译头 文件stdafx.h:
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers                   #include <windows.h>
现项 目入口函数DllMain 的 实现
(4.1) Not Using MFC
:WIN32,_DEBUG,_WINDOWS,_MBCS,_USRDLL,WIN32DLLDEMO_EXPORTS ,与 目2(MFC DLL) 相比,少了_WINDLL,_AFXDLL ,而 保留了_USRDLL 。另外,WIN32DLLDEMO_EXPORTS 自定 出宏。
编译 参数:没有太大区
接参数: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 /dll /incremental:yes /pdb:"Debug/Win32DllDemo.pdb" /debug /machine:I386 /out:"Debug/Win32DllDemo.dll" /implib:"Debug/Win32DllDemo.lib" /pdbtype:sept
与MFC DLL
目相比,多了很多 接,少了/subsystem:windows 的定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值