0

我尝试了多种方法,但基础是这样的:

#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
   }
}

当我运行它时,我收到以下错误:

调试断言失败消息

这个对话框我缺少什么?

我查找了几个资源,但一切都导致相同的错误消息。

谁能告诉我我没看到什么?

4

1 回答 1

3

在控制台应用程序中使用 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 控制台应用程序并使用对话框对我来说没有意义……您的问题可能需要更多详细信息,您想要做什么,以及为什么要以这种方式执行。

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

于 2017-09-12T09:37:18.930 回答