//Hello.h
class CMyApp : public CWinApp
{
public:
    virtual BOOL InitInstance ();
};class CMainWindow : public CFrameWnd
{
public:
    CMainWindow ();protected:
    afx_msg void OnPaint ();
    DECLARE_MESSAGE_MAP ()
};
//Hello.cpp
#include <afxwin.h>
#include "Hello.h"CMyApp myApp;/////////////////////////////////////////////////////////////////////////
// CMyApp member functionsBOOL CMyApp::InitInstance ()
{
    m_pMainWnd = new CMainWindow;
    m_pMainWnd->ShowWindow (m_nCmdShow);
    m_pMainWnd->UpdateWindow ();
    return TRUE;
}/////////////////////////////////////////////////////////////////////////
// CMainWindow message map and member functionsBEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
    ON_WM_PAINT ()
END_MESSAGE_MAP ()CMainWindow::CMainWindow ()
{
    Create (NULL, _T ("The Hello Application"));
}void CMainWindow::OnPaint ()
{
    CPaintDC dc (this);
    
    CRect rect;
    GetClientRect (&rect);    dc.DrawText (_T ("Hello, MFC"), -1, &rect,
        DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}

解决方案 »

  1.   

    在工程设置里选用共享的MFC dll文件
      

  2.   

    9494,no error and no warning !!!
    就是没法编译。
      

  3.   

    可以阿,
    分别建一个.h文件,
    一个.cpp文件,装下各自的内容,可以运行!
      

  4.   

    各位大哥,我也知道上面的源程序没错,重要的是怎样把它变成exe的步骤?我用VC6的Win32 Application创建一个空的后,再添加hello.cpp和hello.h,执行会出现如下错误:
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Debug/hello.exe : fatal error LNK1120: 2 unresolved externals
    Error executing link.exe.hello.exe - 3 error(s), 0 warning(s)
    以上错误如何修正?还请高手言明创建选项和步骤!!!谢谢!!!
      

  5.   

    我都调试成功了,选空项目win32,代码添加,项目连接共享MFC DLL,编译
    通过。
      

  6.   

    在工程设置里 c/c++,Categoty选codegenerration,
    Use run_time library 里选Multithreaded试试看
      

  7.   

    楼上的说的方法是可行的,这个程序中的CMyApp是CWinApp类的一个对象,CWinApp从CWinThread继承而来,因此在构造该对象时会调用到beginthreadex和
    endthreadex来创建和结束线程,而默认的Win32创建的项目编译选项是单线程的,因此会出现上面的错误,其实只要把编译选项的/ML 改为/MT就可以了,《深入浅出MFC》中对这个问题有讲解,可以看看。
      

  8.   

    楼上的说的“只要把编译选项的/ML 改为/MT就可以了”,这个选项在Visual C++6.0的哪儿?《深入浅出MFC》中对这个问题的讲解,在第几页?分值不够,我会加!!!还有,rayofdawn(穷街)说得是不是这样?
    1、选win32 Application-->An Empty project,Project-->Add to project/File-->添加Hello.c和Hello.h代码
    2、选Project/Settings/Normal-->Microsoft Foundation Classes里选Use MFC in a Shared DLL或Use MFC in a Static Library。
       在Project/Settings/c/c++-->Categoty里选code generration
                               -->Use run-time library里选Debug Multithreaded。
    哎哟!!!写写清楚嘛!!让我找了几分钟!!!
      

  9.   

    --------------------Configuration: hello - Win32 Debug--------------------
    Compiling...
    hello.cpp
    Linking...
    libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    Debug/hello.exe : fatal error LNK1120: 1 unresolved externals
    Error executing link.exe.hello.exe - 2 error(s), 0 warning(s)