关于lnk2019错误
《深入浅出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++语言混编”
学到这里较真这个为什么,新手解答。如描述不清,我就贴全部代码
我的编译环境是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++语言混编”
学到这里较真这个为什么,新手解答。如描述不清,我就贴全部代码
...全文
相关推荐
LNK2019错误:vs2008-vc LNK2019,请高手指点
未定义的函数或变量**当代码中调用了某个函数或变量,但在链接时找不到其在任何源文件或库中的定义,就会出现LNK2019错误。
链接错误LNK2001
链接错误 LNK2001链接错误 LNK2001 是一种常见的错误,在编程中尤其是在学习 VC++ 时经常会遇到。
LNK2005错误
### LNK2005 错误解析及解决方法#### 一、LNK2005 错误概述LNK2005 错误是 Microsoft Visual Studio 编译器链接过程中常见的一种错误类型,它通常发生在多个源文件或对象文件中定义了相同的全局变量或函数时
LNK2019错误解析[项目源码]
LNK2019错误是微软Visual C++编译器在链接过程中报告的一种错误,它指出了一个程序或库无法找到它需要的另一个程序或库中的函数或对象。
解决LNK2019错误[项目代码]
在Visual Studio中开发软件项目时,遇到LNK2019错误是常见的问题,这种错误表明链接器无法找到某个函数的定义。


