我按照书上写的敲进去,结果出错
这是怎么回事?ps.这个例子还没用到向导,那么应该建立什么样的工程啊,怎么建立?

解决方案 »

  1.   

    什么错误贴出来。
    可以建立一个win32 application。
    其实这个例子没什么看头,看这本书也没必要弄清楚到底是怎么回事,照着它说的做就行了。要想掌握MFC框架程序的生老病死,看《深入浅出MFC》吧。
      

  2.   

    建立了一个win32 applicationMyApp.h文件
    class CMyApp:public CWinApp
    {
    public:
    virtual BOOL InitInstance();
    };class CMyFrame:public CFrameWnd
    {
    public:
    CMyFrame();
    protected:
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnPaint();
    DECLARE_MESSAGE_MAP();
    };MyApp.cpp文件
    #include <afxwin.h>
    #include "MyApp.h"CMyApp theApp;BOOL CMyApp::InitInstance()
    {
    m_pMainWnd = new CMyFrame();
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;
    }BEGIN_MESSAGE_MAP(CMyFrame, CFrameWnd)
    ON_WM_LBUTTONDOWN()
    ON_WM_PAINT()
    END_MESSAGE_MAP()CMyFrame::CMyFrame()
    {
    Create(NULL , "Myapp Application");
    }void CMyFrame::OnLButtonDown(UINT nFlags,CPoint point)
    {
    TRACE("Entering CMyFrame::OnLButtonDown - %1x,%d,%d\n",(long)nFlags,point.x, point.y);
    }void CMyFrame::OnPaint()
    {
    CPaintDC dc(this);
    dc.TextOut(0, 0 ,"Hello World!");
    }
    编译没错,链接
    Linking...
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Debug/MyApp.exe : fatal error LNK1120: 2 unresolved externals
    Error executing link.exe.MyApp.exe - 3 error(s), 0 warning(s)
      

  3.   

    在project settings里面的Gernral页中选中Use MFC in a shared DLL。
      

  4.   

    或在Link页面里的Project Options里面加上一个 /MT 选项。
      

  5.   

    上面说错了,应该在C/C++页面的Project Options里面加。
      

  6.   

    unresolved external symbol __beginthreadex
    找不到呢个函数。
      

  7.   

    线程设置问题!
    set -> c/c++ -> Code Generation -> Use run-time library 选 Debug Multithreaded Dll
      

  8.   

    #include <afxwin.h>
    class CMyApp:public CWinApp
    {
    public:
    virtual BOOL InitInstance();
    };class CMyFrame:public CFrameWnd
    {
    public:
    CMyFrame();
    protected:
    afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    afx_msg void OnPaint();
    DECLARE_MESSAGE_MAP();
    };CMyApp theApp;BOOL CMyApp::InitInstance()
    {
    m_pMainWnd = new CMyFrame();
    m_pMainWnd->ShowWindow(m_nCmdShow);
    m_pMainWnd->UpdateWindow();
    return TRUE;
    }BEGIN_MESSAGE_MAP(CMyFrame, CFrameWnd)
    ON_WM_LBUTTONDOWN()
    ON_WM_PAINT()
    END_MESSAGE_MAP()CMyFrame::CMyFrame()
    {
    Create(NULL , "Myapp Application");
    }void CMyFrame::OnLButtonDown(UINT nFlags,CPoint point)
    {
    TRACE("Entering CMyFrame::OnLButtonDown - %1x,%d,%d\n",(long)nFlags,point.x, point.y);
    }void CMyFrame::OnPaint()
    {
    CPaintDC dc(this);
    dc.TextOut(0, 0 ,"Hello World!");
    }
    ===============================================================
    将上面的代码拷贝,粘贴到记事本文件,然后另存为1.cpp
    再用VC6.0打开编译
    ==========================================================
    下面按照做调整,按 ALT+ F7组合键将弹出Project Setting ,然后点击C/C++ tab,将preprocessor definitions 里的 WIN32,_DEBUG,_MBCS,_CONSOLE 改为WIN32,_DEBUG,_MBCS,_WINDOWS
    然后切换到Link tab标签找到Project Options即最下面那个框将“/subsystem:console”改为/subsystem:windows然后编译,它将报告:ompiling...
    1.cpp
    Linking...
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
    nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
    Debug/1.exe : fatal error LNK1120: 2 unresolved externals
    Error executing link.exe.1.exe - 3 error(s), 0 warning(s)然后:
    按 ALT+ F7组合键将弹出Project Setting ,点击C/C++ tab找到category:即第一个下拉框中选中code Generation之后你将看见有一个将Use run-time library:的标签,即reset按钮下面第一个下拉框将Debug Multithreaded选中,好了点击OK退出,编译