C++ 如何制作CDDialog?

C++ 如何制作CDDialog?,c++,mfc,cdialog,C++,Mfc,Cdialog,我尝试过多种方法,但基本原理如下: #include <stdio.h> #include <afxwin.h> main( int argc, const char* argv[] ) { printf( "\nHello World\n\n" ); CDialog *dlg = new CDialog(); dlg->DoModal(); while (true) { Sleep(1); // Sleep is a

我尝试过多种方法,但基本原理如下:

#include <stdio.h>
#include <afxwin.h>


main( int argc, const char* argv[] )
{

   printf( "\nHello World\n\n" );

   CDialog *dlg = new CDialog();
   dlg->DoModal();

   while (true) {
      Sleep(1); // Sleep is a windows function
   }
}
#包括
#包括

这个对话框缺少什么

我查找了几个资源,但所有结果都是相同的错误消息


有人能告诉我我没有看到什么吗?

在控制台应用程序中使用MFC需要一些初始化。 没有这一点,你将获得资产

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        _tprintf(_T("Fatal Error: MFC initialization failed\n"));
        return 8;
    }
您还必须使用绑定到CDialog的资源。您可以使用适当的构造函数。或者使用类向导从CDialog派生您自己的对话框

但创建MFC控制台应用程序并使用对话框对我来说毫无意义。。。你的问题可能需要更多的细节,你想做什么,为什么要这样做


在继续这种编程方式之前,您可能需要阅读一些书籍或文章。

在控制台应用程序中使用MFC需要一些初始化。 没有这一点,你将获得资产

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        _tprintf(_T("Fatal Error: MFC initialization failed\n"));
        return 8;
    }
您还必须使用绑定到CDialog的资源。您可以使用适当的构造函数。或者使用类向导从CDialog派生您自己的对话框

但创建MFC控制台应用程序并使用对话框对我来说毫无意义。。。你的问题可能需要更多的细节,你想做什么,为什么要这样做


在继续这种编程方式之前,您可能需要阅读一些书籍或文章。

您想显示一个对话框,好吗。但是你希望它包含什么呢?只是一些文本(改用
MessageBox
)?或者某种形式(创建一个基于对话框的项目)?还有什么?最后我想从对话框中得到一些信息。但首先我想显示一个空对话框:对于入门,只需使用VisualStudio应用程序向导创建一个“基于对话框”的应用程序。这将生成创建“空”对话框所需的代码。稍后,您可以尝试从头开始执行所有操作,但对于初学者,建议使用向导。您希望显示一个对话框,好吗。但是你希望它包含什么呢?只是一些文本(改用
MessageBox
)?或者某种形式(创建一个基于对话框的项目)?还有什么?最后我想从对话框中得到一些信息。但首先我想显示一个空对话框:对于入门,只需使用VisualStudio应用程序向导创建一个“基于对话框”的应用程序。这将生成创建“空”对话框所需的代码。稍后,您可以尝试从头开始执行所有操作,但对于初学者,建议使用该向导。您不需要从
CDialog
派生。如果是这种情况,所有显式构造函数都将受到保护(它们不是)。但是,它在您可以做的事情上相当有限(因为实际上,除了允许从
CDialog
进行默认处理之外,您什么都不做)。这个答案最重要的部分是(a)正确设置MFC,以及(b)确保对话框绑定到资源(而不是使用未绑定的构造函数)。这两个都不在OPs代码中,而且都应该在OPs代码中。谢谢你的建议。更改了我的答案。你不需要从
CDialog
派生。如果是这样,所有显式构造函数都会受到保护(它们不是)。但是,你可以做的事情非常有限(因为实际上,除了允许从
CDialog
进行默认处理之外,您什么都不做。这个答案最重要的部分是(a)正确设置MFC,以及(b)确保对话框绑定到资源(而不是使用未绑定的构造函数)。这两个都不在OPs代码中,应该都在。谢谢你的建议。更改了我的答案。