EmergenceDoc.obj:错误LNK2019:未解析的外部符号(EmergenceDoc.obj : error LNK2019: unresolved external symbol)

系统教程 行业动态 更新时间:2024-06-14 16:58:30
EmergenceDoc.obj:错误LNK2019:未解析的外部符号(EmergenceDoc.obj : error LNK2019: unresolved external symbol)

我正在VS2010中创建一个简单的MFC文本编辑器,以便学习C ++并且我遇到了一些绊脚石....

具体来说,我在构建日志中收到以下错误:

1> Generating Code... 1>Link: 1> Creating library C:\Users\Alvin\Documents\Visual Studio 2010\Projects\Emergence\Debug\EmergenceHandlers.lib and object C:\Users\Alvin\Documents\Visual Studio 2010\Projects\Emergence\Debug\EmergenceHandlers.exp 1>EmergenceDoc.obj : error LNK2019: unresolved external symbol "public: __thiscall CEmergenceCntrItem::CEmergenceCntrItem(struct _reobject *,class CEmergenceDoc *)" (??0CEmergenceCntrItem@@QAE@PAU_reobject@@PAVCEmergenceDoc@@@Z) referenced in function "public: virtual class CRichEditCntrItem * __thiscall CEmergenceDoc::CreateClientItem(struct _reobject *)const " (?CreateClientItem@CEmergenceDoc@@UBEPAVCRichEditCntrItem@@PAU_reobject@@@Z) 1>C:\Users\Alvin\Documents\Visual Studio 2010\Projects\Emergence\Debug\EmergenceHandlers.dll : fatal error LNK1120: 1 unresolved externals 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:06.52 ========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

以下是CEmergenceCntrItem出现的所有文件....

cntritem.h:

#include "afxrich.h" #include "Resource.h" class CEmergenceDoc; class CEmergenceView; class CEmergenceCntrItem : public CRichEditCntrItem { DECLARE_SERIAL(CEmergenceCntrItem) public: CEmergenceCntrItem(REOBJECT* preo = NULL, CEmergenceDoc* pContainer = NULL); public: CEmergenceDoc* GetDocument() { return (CEmergenceDoc*)COleClientItem::GetDocument(); } CEmergenceView* GetActiveView() { return (CEmergenceView*)COleClientItem::GetActiveView(); } // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CWordPadCntrItem) public: protected: //}}AFX_VIRTUAL // Implementation public: #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif };

EmergenceView.cpp:

#include "afxrich.h" #pragma once class CEmergenceCntrItem; class CEmergenceView : public CRichEditView { protected: // create from serialization only CEmergenceView(); DECLARE_DYNCREATE(CEmergenceView) public: CEmergenceDoc* GetDocument() const; public: public: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); public: virtual ~CEmergenceView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: protected: afx_msg void OnFilePrintPreview(); afx_msg void OnRButtonUp(UINT nFlags, CPoint point); afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); DECLARE_MESSAGE_MAP() public: afx_msg void OnMutateGroup(); }; #ifndef _DEBUG // debug version in EmergenceView.cpp inline CEmergenceDoc* CEmergenceView::GetDocument() const { return reinterpret_cast<CEmergenceDoc*>(m_pDocument); } #endif

EmergenceDoc.cpp

#include "stdafx.h" #include "Emergence.h" #include "EmergenceDoc.h" #include "CntrItem.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNCREATE(CEmergenceDoc, CRichEditDoc) BEGIN_MESSAGE_MAP(CEmergenceDoc, CRichEditDoc) //{{AFX_MSG_MAP(CMyWordDoc) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP // Enable default OLE container implementation ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, CRichEditDoc::OnUpdateEditLinksMenu) ON_COMMAND(ID_OLE_EDIT_LINKS, CRichEditDoc::OnEditLinks) ON_UPDATE_COMMAND_UI_RANGE(ID_OLE_VERB_FIRST, ID_OLE_VERB_LAST, CRichEditDoc::OnUpdateObjectVerbMenu) END_MESSAGE_MAP() CEmergenceDoc::CEmergenceDoc() { } CEmergenceDoc::~CEmergenceDoc() { } BOOL CEmergenceDoc::OnNewDocument() { if (!CRichEditDoc::OnNewDocument()) return FALSE; return TRUE; } CRichEditCntrItem* CEmergenceDoc::CreateClientItem(REOBJECT* preo) const { return new CEmergenceCntrItem(preo, (CEmergenceDoc*) this); } void CEmergenceDoc::Serialize(CArchive& ar) { CRichEditDoc::Serialize(ar); }

CntrItem.cpp

#include "stdafx.h" #include "Emergence.h" #include "EmergenceDoc.h" #include "EmergenceView.h" #include "cntritem.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif IMPLEMENT_SERIAL(CEmergenceCntrItem, CRichEditCntrItem, 0) CEmergenceCntrItem::CEmergenceCntrItem(REOBJECT *preo, CEmergenceDoc* pContainer) : CRichEditCntrItem(preo, pContainer) { } #ifdef _DEBUG void CEmergenceCntrItem::AssertValid() const { CRichEditCntrItem::AssertValid(); } void CEmergenceCntrItem::Dump(CDumpContext& dc) const { CRichEditCntrItem::Dump(dc); } #endif

任何帮助将不胜感激。

I' m creating a simple MFC text editor in VS2010 in order to learn C++ and I've hit a bit of a stumbling block....

Specifically, I get the following error in my build log:

1> Generating Code... 1>Link: 1> Creating library C:\Users\Alvin\Documents\Visual Studio 2010\Projects\Emergence\Debug\EmergenceHandlers.lib and object C:\Users\Alvin\Documents\Visual Studio 2010\Projects\Emergence\Debug\EmergenceHandlers.exp 1>EmergenceDoc.obj : error LNK2019: unresolved external symbol "public: __thiscall CEmergenceCntrItem::CEmergenceCntrItem(struct _reobject *,class CEmergenceDoc *)" (??0CEmergenceCntrItem@@QAE@PAU_reobject@@PAVCEmergenceDoc@@@Z) referenced in function "public: virtual class CRichEditCntrItem * __thiscall CEmergenceDoc::CreateClientItem(struct _reobject *)const " (?CreateClientItem@CEmergenceDoc@@UBEPAVCRichEditCntrItem@@PAU_reobject@@@Z) 1>C:\Users\Alvin\Documents\Visual Studio 2010\Projects\Emergence\Debug\EmergenceHandlers.dll : fatal error LNK1120: 1 unresolved externals 1> 1>Build FAILED. 1> 1>Time Elapsed 00:00:06.52 ========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

Below are all the files in which CEmergenceCntrItem appears....

cntritem.h:

#include "afxrich.h" #include "Resource.h" class CEmergenceDoc; class CEmergenceView; class CEmergenceCntrItem : public CRichEditCntrItem { DECLARE_SERIAL(CEmergenceCntrItem) public: CEmergenceCntrItem(REOBJECT* preo = NULL, CEmergenceDoc* pContainer = NULL); public: CEmergenceDoc* GetDocument() { return (CEmergenceDoc*)COleClientItem::GetDocument(); } CEmergenceView* GetActiveView() { return (CEmergenceView*)COleClientItem::GetActiveView(); } // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CWordPadCntrItem) public: protected: //}}AFX_VIRTUAL // Implementation public: #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif };

EmergenceView.cpp:

#include "afxrich.h" #pragma once class CEmergenceCntrItem; class CEmergenceView : public CRichEditView { protected: // create from serialization only CEmergenceView(); DECLARE_DYNCREATE(CEmergenceView) public: CEmergenceDoc* GetDocument() const; public: public: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual BOOL OnPreparePrinting(CPrintInfo* pInfo); virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo); virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo); public: virtual ~CEmergenceView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: protected: afx_msg void OnFilePrintPreview(); afx_msg void OnRButtonUp(UINT nFlags, CPoint point); afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); DECLARE_MESSAGE_MAP() public: afx_msg void OnMutateGroup(); }; #ifndef _DEBUG // debug version in EmergenceView.cpp inline CEmergenceDoc* CEmergenceView::GetDocument() const { return reinterpret_cast<CEmergenceDoc*>(m_pDocument); } #endif

EmergenceDoc.cpp

#include "stdafx.h" #include "Emergence.h" #include "EmergenceDoc.h" #include "CntrItem.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNCREATE(CEmergenceDoc, CRichEditDoc) BEGIN_MESSAGE_MAP(CEmergenceDoc, CRichEditDoc) //{{AFX_MSG_MAP(CMyWordDoc) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAP // Enable default OLE container implementation ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, CRichEditDoc::OnUpdateEditLinksMenu) ON_COMMAND(ID_OLE_EDIT_LINKS, CRichEditDoc::OnEditLinks) ON_UPDATE_COMMAND_UI_RANGE(ID_OLE_VERB_FIRST, ID_OLE_VERB_LAST, CRichEditDoc::OnUpdateObjectVerbMenu) END_MESSAGE_MAP() CEmergenceDoc::CEmergenceDoc() { } CEmergenceDoc::~CEmergenceDoc() { } BOOL CEmergenceDoc::OnNewDocument() { if (!CRichEditDoc::OnNewDocument()) return FALSE; return TRUE; } CRichEditCntrItem* CEmergenceDoc::CreateClientItem(REOBJECT* preo) const { return new CEmergenceCntrItem(preo, (CEmergenceDoc*) this); } void CEmergenceDoc::Serialize(CArchive& ar) { CRichEditDoc::Serialize(ar); }

CntrItem.cpp

#include "stdafx.h" #include "Emergence.h" #include "EmergenceDoc.h" #include "EmergenceView.h" #include "cntritem.h" #ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif IMPLEMENT_SERIAL(CEmergenceCntrItem, CRichEditCntrItem, 0) CEmergenceCntrItem::CEmergenceCntrItem(REOBJECT *preo, CEmergenceDoc* pContainer) : CRichEditCntrItem(preo, pContainer) { } #ifdef _DEBUG void CEmergenceCntrItem::AssertValid() const { CRichEditCntrItem::AssertValid(); } void CEmergenceCntrItem::Dump(CDumpContext& dc) const { CRichEditCntrItem::Dump(dc); } #endif

Any help would be greatly appreciated.

最满意答案

只需将cntritem.cpp和cntritem.h复制到资源文件夹即可!

Just copy cntritem.cpp and cntritem.h to resources folder!

更多推荐

本文发布于:2023-04-15 03:31:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/1a3d1a548cfac85b0c0ac8143480ec9d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:符号   错误   EmergenceDoc   obj   unresolved

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!