我正在一个项目中创建一个dll + lib,并试图在另一个项目中使用该函数。
Project_A:
fileA.h:
#ifdef COMPILE_A
#define A_EXPORT __declspec(dllexport)
#else
#define A_EXPORT __declspec(dllimport)
#endif
class A_EXPORT Class_A
{
void printFunction();
}
fileA.cpp:
#include "fileA.h"
void fileA::printFunction()
{
cout<<"bla bla";
}
Project_B:
fileB.cpp
#include "fileA.h"
int main()
{
fileA obj();
obj.printFunction();
}
在fileA.cpp的预处理器定义中,我定义了COMPILE_A。这个项目被编译并生成一个dll和lib文件。
我通过链接Project_A的构建中的.lib文件将其链接到Project_B。我还链接了Project_B中的头文件。
我可以导入这些头文件并进行编译。 但是当我尝试调用printFucntion()时,我得到了
错误1错误LNK2001:未解析的外部符号&#34; __ declspec(dllimport)public:__ thishisall
有点错误。
任何人都可以帮助我吗?
答案 0 :(得分:0)
我使用向导创建示例项目。要解决链接错误,我必须在file_b项目中添加一个引用到file_a项目。
此外,代码没有编译行
fileA obj();
你可能想要
fileA obj;
有关完整的VS解决方案,请参阅https://github.com/kc1073/Samples/下的TwoProj项目。
KC