如何在控制台程序中使用MFC

2025-10-27 03:04:36

1、修改项目属性,使项目能够使用MFC。

单击菜单【调试】-【XXX 属性】,在弹出的对话框的左侧选择【高级】,然后在右侧【MFC 的使用】后选择【在共享DLL中使用MFC】。

如何在控制台程序中使用MFC

如何在控制台程序中使用MFC

2、添加并修改头文件,引入mfc类库。

如图,添加一个头文件(这里取名为“usemfc.h”),修改为以下代码。

#pragma once

 

#include <SDKDDKVer.h>

 

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS      // 部分 CString 构造函数将是显式的

 

#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS         // 移除对话框中的 MFC 控件支持

 

#ifndef VC_EXTRALEAN

 

#define VC_EXTRALEAN            // 从 Windows 头文件中排除极少使用的内容

 

#endif

 

#include <afx.h>

 

#include <afxwin.h>         // MFC 核心组件和标准组件

 

#include <afxext.h>         // MFC 扩展

 

#ifndef _AFX_NO_OLE_SUPPORT

 

#include <afxdtctl.h>           // MFC 对 Internet Explorer 4 公共控件的支持

 

#endif

 

#ifndef _AFX_NO_AFXCMN_SUPPORT

 

#include <afxcmn.h>                     // MFC 对 Windows 公共控件的支持

 

#endif // _AFX_NO_AFXCMN_SUPPORT

如何在控制台程序中使用MFC

如何在控制台程序中使用MFC

如何在控制台程序中使用MFC

3、包含这个头文件后,你的项目就支持MFC了,这里我通过一个简单的程序演示效果。

但是要注意,使用某些MFC功能时,需要初始化MFC,初始化方法如下面代码中黑体字所示。

#include "usemfc.h"

 

#include <iostream>

 

using namespace std;

 

int main()

 

{

 

    // MFC初始化

 

    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))

 

        return 1;

 

    CFileDialog dlg(TRUE);

 

    CString strPath;

 

    if (dlg.DoModal() == IDOK)

 

    {

 

        strPath = dlg.GetPathName();

 

        cout << "您选择的文件:" << strPath << endl;

 

    }

 

    return 0;

 

}

如何在控制台程序中使用MFC

4、测试效果如下图所示。

如何在控制台程序中使用MFC

如何在控制台程序中使用MFC

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢