这是我第一次使用 .NET,当我使用多个项目时,这让我很难受。我究竟做错了什么?这就是我所做的:
1 创建一个新项目(和解决方案)。一个名为“Lib”的“类库”。
2 使用以下代码将文件“Comp1.h”添加到“头文件”:
#ifndef COMP1_H
#define COMP1_H
class comp1
{
public:
comp1(void);
~comp1(void);
}
#endif
3 使用以下代码将文件“Comp1.cpp”添加到“源文件”:
#include "stdafx.h"
#include "Comp1.h"
comp1::comp1(void){}
comp1::~comp1(void){}
4 我用以下代码覆盖自动创建的“Lib.h”文件的代码:
#ifndef LIB_H
#define LIB_H
#include "Comp1.h"
#endif
5 添加一个名为“Test”的“CLR 空项目”并将其设置为启动项目。
6 使用以下代码将文件“test.cpp”添加到“测试”项目的“源文件”中:
#include "../Lib/Lib.h"
#using "../Debug/Lib.dll"//Is this line mandatory?
int main()
{
comp1 component;
return 0;
}
7 在“测试”属性中添加“Lib”作为参考。
8 确保在“Project Dependencies”中“Test”依赖于“Lib”。
9 将它们都编译为 /clr
这就是我得到的:
1>test.obj : error LNK2028: unresolved token (0A000009) "public: __thiscall comp1::comp1(void)" (??0comp1@@$$FQAE@XZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>test.obj : error LNK2028: unresolved token (0A00000A) "public: __thiscall comp1::~comp1(void)" (??1comp1@@$$FQAE@XZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>test.obj : error LNK2019: unresolved external symbol "public: __thiscall comp1::~comp1(void)" (??1comp1@@$$FQAE@XZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
1>test.obj : error LNK2019: unresolved external symbol "public: __thiscall comp1::comp1(void)" (??0comp1@@$$FQAE@XZ) referenced in function "int __cdecl main(void)" (?main@@$$HYAHXZ)
如果我创建内联函数,则不会出现此问题。
在论坛上,您可以找到有关包含文件错误的答案,但我很确定我编码的所有内容都是正确的。
谢谢你。