关于lnk2019错误

squijy squijy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
《深入浅出MFC》中,第三章范例程序Frame6,讲MFC动态创建的程序。
我的编译环境是VS2013,C++win32控制台程序。
在MFC.H中有结构体CRuntimeClass,其中两个函数
struct CRuntimeClass
{
...
CObject* CreateObject();
static CRuntimeClass* PASCAL Load();
};

MFC.cpp中实现如下
CObject* CRuntimeClass::CreateObject()
{
...
return NULL;
}

CRuntimeClass* PASCAL CRuntimeClass::Load()
{
...
return NULL;
}
当我调换实现的顺序,让Load()在前,如下
CRuntimeClass* PASCAL CRuntimeClass::Load()
{
...
return NULL;
}
CObject* CRuntimeClass::CreateObject()
{
...
return NULL;
}
就会出现
error LNK2019: 无法解析的外部符号 "public: class CObject * __thiscall CRuntimeClass::CreateObject(void)" (?CreateObject@CRuntimeClass@@QAEPAVCObject@@XZ),该符号在函数 _main 中被引用

我问百度,觉得最有可能的解释是“C语言和C++语言混编”
学到这里较真这个为什么,新手解答。如描述不清,我就贴全部代码
...全文
评论 10
收藏 已收藏
分享
返回顶部
squijy
VC/MFC 16,550 成员 421,606 内容