Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何解析LNK2001_C++_Visual Studio 2008_C++ Cli_Compiler Errors_Lnk2001 - Fatal编程技术网

C++ 如何解析LNK2001

C++ 如何解析LNK2001,c++,visual-studio-2008,c++-cli,compiler-errors,lnk2001,C++,Visual Studio 2008,C++ Cli,Compiler Errors,Lnk2001,我有一套用VS6编写的代码。我正在尝试在VS2008中为此编写CLI包装。我在CLI代码中包含了一个VS6头文件,并进行了编译LNK2001:未解析的外部符号“public:virtual void\uu thiscall Someclass::SomeMethod(SomeObject&os) 头文件 class SomeClass: public ParentClass { virtual void SomeMethod(SomeObject& os); } CPP文件 vo

我有一套用VS6编写的代码。我正在尝试在VS2008中为此编写CLI包装。我在CLI代码中包含了一个VS6头文件,并进行了编译



LNK2001:未解析的外部符号“public:virtual void\uu thiscall Someclass::SomeMethod(SomeObject&os)

头文件

class SomeClass: public ParentClass
 {
  virtual void SomeMethod(SomeObject& os);
}
CPP文件

void SomeClass::SomeMethod(SomeObject& os)
{
//Implementation here
}

SomeMethod实际上是从父类重写的

当我在头文件中通过添加一个打开和关闭的花括号来声明

virtual void SomeMethod(SomeObject& os) {};

错误消失了。但我不能这样做,因为它会导致一个方法有两个主体。为什么会出现这种行为?我如何克服这种情况?或者在CLI中包含BS6头时,我是否必须添加任何#pragma?

听起来好像您的项目中没有包含“CPP文件”。这也解释了为什么在包含两个主体时不会出现错误o bodies.若要检查此问题,请尝试在CPP文件中放入一个故意的编译错误。如果编译器没有抱怨,这将证明您没有编译CPP文件。

是的,我没有。我不知道我需要包含它。谢谢。有没有其他方法可以不包含这些CPP文件?一个非常奇怪的问题。您所说的“包含”是什么意思?您绝对不应该这样做
#include“file.cpp“
但您应该告诉编译器编译代码。我无法想象为什么你会认为你不需要这样做。你可能需要再多解释一下,这里有些东西我不明白。我不是说#包括在内。好吧,不管怎样。忘了它吧,有模板吗?因为这改变了一切。我想不会,但我想我会确定的。