注册 登录
编程论坛 C++教室

求助,运行c++程序时出现这个问题

stys 发布于 2010-05-19 16:58, 438 次点击
Compiling...
comm.cpp
Linking...
comm.obj : error LNK2001: unresolved external symbol "public: __thiscall CCommDlg::CCommDlg(class CWnd *)" (??0CCommDlg@@QAE@PAVCWnd@@@Z)
Debug/comm.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

comm.exe - 1 error(s), 0 warning(s)
以下是程序:
// comm.cpp : Defines the class behaviors for the application.
//

#include "stdafx.h"
#include "comm.h"
#include "commDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCommApp

BEGIN_MESSAGE_MAP(CCommApp, CWinApp)
    //{{AFX_MSG_MAP(CCommApp)
        // NOTE - the ClassWizard will add and remove mapping macros here.
        //    DO NOT EDIT what you see in these blocks of generated code!
    //}}AFX_MSG
    ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCommApp construction

CCommApp::CCommApp()
{
    // TODO: add construction code here,
    // Place all significant initialization in InitInstance
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CCommApp object

CCommApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CCommApp initialization

BOOL CCommApp::InitInstance()
{
    if (!AfxSocketInit())
    {
        return FALSE;
    }
    AfxEnableControlContainer();
    // Standard initialization
    // If you are not using these features and wish to reduce the size
    //  of your final executable, you should remove from the following
    //  the specific initialization routines you do not need.

#ifdef _AFXDLL
    Enable3dControls();            // Call this when using MFC in a shared DLL
#else
    Enable3dControlsStatic();    // Call this when linking to MFC statically
#endif

    CCommDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: Place code here to handle when the dialog is
        //  dismissed with Cancel
    }

    // Since the dialog has been closed, return FALSE so that we exit the
    //  application, rather than start the application's message pump.
    return FALSE;
}
请教这个问题的解决办法,谢谢!
3 回复
#2
stys2010-05-20 08:39
是不是问题太小白了,怎么没人理我呀
#3
幽园香客2010-05-21 10:17
问题在在于:CCommDlg::CCommDlg(class CWnd *)" (??0CCommDlg@@QAE@PAVCWnd@@@Z)。
建议你仔细看下CCommDlg这个类,特别是这个类里面的构造函数。看看这个类的声明与实现是否添加到当前工程中,这个类的构造函数是否有问题等等。
#4
stys2010-05-21 12:34
以下是引用幽园香客在2010-5-21 10:17:36的发言:

 问题在在于:CCommDlg::CCommDlg(class CWnd *)" (??0CCommDlg@@QAE@PAVCWnd@@@Z)。
建议你仔细看下CCommDlg这个类,特别是这个类里面的构造函数。看看这个类的声明与实现是否添加到当前工程中,这个类的构造函数是否有问题等等。
那么这个类的声明与实现如何添加到当前工程中呢?
1