visual c++中常用MFC文件及库文件
利用MFC
App编写MFC应用程序时,程序标准功能的实现借助了MFC的类定义文件,MFC应用程序框架的stdafx.h头文件中包含了声明这些类的MFC头文件。此外,MFC应用程序框架还需利用Windows本身提供的功能文件和API函数。表1为MFC文件和Windows系统提供的库文件列表。
表1
MFC文件和Windows系统提供的库文件列表
MFC的头文件Afx.h(在路径“…\Microsoft Visual
Studio\VC98\MFC\Include\”下)中设置了需要使用的动态链接库和静态链接库,以下便是Afx.h中相关源代码:
// Win32
libraries
#ifndef
_AFXDLL
//静态链接MFC
#ifndef _UNICODE
#ifdef _DEBUG
#pragma comment(lib,
"nafxcwd.lib")
//静态链接库(Debug版)
#else
#pragma comment(lib,
"nafxcw.lib")
//静态链接库(Release版)
#endif
#else
#ifdef _DEBUG
#pragma comment(lib, "uafxcwd.lib")
#else
#pragma comment(lib, "uafxcw.lib")
#endif
#endif
#else
#ifndef
_UNICODE
//动态链接MFC
#ifdef _DEBUG
#pragma comment(lib,
"mfc42d.lib")
//动态链接库MFC DLL
#pragma comment(lib,
"mfcs42d.lib")
//静态链接库MFC DLL
#else
#pragma comment(lib,
"mfc42.lib")
//动态链接库MFC DLL
#pragma comment(lib,
"mfcs42.lib")
//静态链接库MFC DLL
#endif
#else
#ifdef _DEBUG
#pragma comment(lib,
"mfc42ud.lib")
//动态链接库MFC DLL
#pragma comment(lib,
"mfcs42ud.lib")
//静态链接库MFC DLL
#else
#pragma comment(lib,
"mfc42u.lib")
//动态链接库MFC DLL
#pragma comment(lib,
"mfcs42u.lib")
//静态链接库MFC DLL
#endif
#endif
#endif
#ifdef _DLL
#if !defined(_AFX_NO_DEBUG_CRT) &&
defined(_DEBUG)
#pragma comment(lib,
"msvcrtd.lib")
//动态链接C运行函数库(Debug版)
#else
#pragma comment(lib,
"msvcrt.lib")
//动态链接C运行函数库(Release版)
#endif
#else
#ifdef _MT
#if !defined(_AFX_NO_DEBUG_CRT) &&
defined(_DEBUG)
#pragma comment(lib,
"libcmtd.lib")
//静态链接C运行函数库多线程
#else
#pragma comment(lib, "libcmt.lib")
#endif
#else
#if !defined(_AFX_NO_DEBUG_CRT) &&
defined(_DEBUG)
#pragma comment(lib,
"libcd.lib")
//静态链接C运行函数库单线程
#else
#pragma comment(lib, "libc.lib")
#endif
#endif
#endif
#pragma comment(lib,
"kernel32.lib")
//KERNEL32.DLL的导入函数库
#pragma comment(lib,
"user32.lib")
//USER32.DLL的导入函数库
#pragma comment(lib,
"gdi32.lib")
//GDI32.DLL的导入函数库
#pragma comment(lib,
"comdlg32.lib")
//共用对话框库Comdlg32.DLL的导入函数库
#pragma comment(lib, "winspool.lib")
#pragma comment(lib, "advapi32.lib")
#pragma comment(lib, "shell32.lib")
#pragma comment(lib, "comctl32.lib")
……
|
对于上述编译预处理指令,编译程序将根据Developer
Studio开发环境对应用程序项目的设置情况进行不同的处理,如利用条件编辑指令判断是动态链接还是静态链接,以决定需要链接的导入函数库。
|
请发表评论