如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目

Posted

技术标签:

【中文标题】如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目【英文标题】:How to add MFC application project to Win32 application project in Visual C++ 2008 【发布时间】:2014-02-05 15:20:17 【问题描述】:

我一天中的大部分时间都在试图弄清楚为什么会发生这个错误,但它仍然让我感到困惑。

我在 Visual C++ 中创建了一个控制台应用程序并创建了一个 MFC 应用程序。现在,我想将它们添加到单个项目中,这样当我编译项目时,它应该打开控制台,然后根据我的命令打开对话框......

我已经添加了 afx 头文件,设置配置设置。

我想知道从哪里开始是winmain() 还是int main()? 有没有例子。? 给我一些链接知道。解决方案 提前谢谢你。

【问题讨论】:

您究竟想在这里实现什么?你可以很容易地attach a new console window to an MFC app,但这可能不是最好的解决方案。 【参考方案1】:

创建基于 MFC 对话框的应用程序。项目 - 属性 - 配置属性 - 链接器 - 高级 - 入口点,设置 wWinMainCRTStartup(假设项目是 Unicode)。链接器 - 系统 - 选择控制台。构建应用程序。现在它会打开控制台窗口和其中的对话框。

添加一些逻辑。例如,在我的 Application 类 cpp 文件中,我添加了以下内容:

#include "stdafx.h"
#include "testmfc.h"
#include "testmfcDlg.h"
#include <iostream>      // add
#include <string>        // add
using namespace std;     // add

...

BOOL CtestmfcApp::InitInstance()

     ...

     SetRegistryKey(_T("Local AppWizard-Generated Applications"));

     // ****** add this
     string s;
     cout << "Start application?" << endl;
     cin >> s;

     if ( s == "y" )
     
         CtestmfcDlg dlg;
         m_pMainWnd = &dlg;
         dlg.DoModal();
     
     // ****** 

    // Delete the shell manager created above.
    if (pShellManager != NULL)
    
        delete pShellManager;
    

    return FALSE;

现在运行应用程序。如果您在控制台窗口中回答“y”,则会显示对话框。否则,应用程序立即退出。基于此示例实现您自己的逻辑。

【讨论】:

我可以使用与您所说的相同的方法来使用 SDI 应用程序

以上是关于如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Visual Studio 2008 中使用 Visual Studio 6 编译的 C++ 静态库吗?

如何在 Visual Studio 2008 中将程序集信息添加到网站/应用程序

如何在 vc 2008 上使用“Visual C++ 2008 Feature Pack”?

如何在 Visual Studio 2008 和 C++ 中显示希腊字符? [复制]

如何在 Visual C++ 2008 中查找未使用的属性/方法

Visual Studio2008 C++结构体成员需要内存对齐吗?