又是令人抓狂的LNK2019错误
IDE:Visual Studio 2010
场景重现:
一个Solution内有两个工程,ProjectA(完全用C语言实现)和ProjectB(使用C++编写).
ProjectA作为底层的程序实现基本的功能,为了效率和其他问题,使用了C语言编写,代码已有数万行,不能做大的改动;另外,该工程Build没有任何Error.
ProjectB是ProjectA所实现的程序功能的图形界面(在这里使用MFC来做),自然不得不用到面向对象...
在ProjectB中,我写了一个类,将ProjectA中的基本功能进行封装,以便在ProjectB中对ProjectA中的部分功能进行调用,我称这个类为Controller.
于是,Controller类中的方法,就要调用ProjectA中的函数,我知道这种情况下该用extern "C" {...}这样的方法来包含ProjectA中的头文件,例如:
extern "C"{
#include "dataload/dataload.h"
//其对应代码使用C语言编写
}
但是这种方法始终出现Link Error...
在ProjectB中,编写的cpp源文件要包含Controller.h的头文件,例如LoadData.cpp中,需要这样写:
#include "Externel/Controller.h"
//路径是没问题
但是,在ProjectB进行Build的时候,就出现了在LoadData.obj有unresolved externel symbol的错误,不能连接,错误LNK2019;每一个Controller中调用ProjectA中函数的地方都出现了错误.
网上看了N多LNK2019错误的帖子,千篇一律,该试的都试过了...抓狂...求助...
希望各位达人根据我的描述在VS2010里面重建一下这样的环境,告诉我该怎么办。。。
新建一个Solution,其中包含两个Project,一个用C语言编写(后缀名为.c和.h),另一个工程用c++编写,做个简单的测试类,封装C语言工程提供函数.然后在C++工程中新建另一个类,调用封装的类,看是否能够连接成功.
我初步认为这可能是某些环境变量没设对的问题,但是不知道该怎么解决...
求解决方案.