首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解析LNK2001

如何解析LNK2001
EN

Stack Overflow用户
提问于 2011-08-16 12:20:32
回答 1查看 526关注 0票数 0

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

在编译时,我得到了

LNK2001: unresolved external symbol "public: virtual void __thiscall Someclass::SomeMethod(SomeObject& os)

当我搜索与代码对应的错误中的方法和类时,

头文件。

代码语言:javascript
复制
class SomeClass: public ParentClass
 {
  virtual void SomeMethod(SomeObject& os);
}

CPP文件

代码语言:javascript
复制
void SomeClass::SomeMethod(SomeObject& os)
{
//Implementation here
}

SomeMethod实际上是从ParentClass中重写的

当我在头文件中通过添加一个左花括号和右花括号来进行声明时

代码语言:javascript
复制
virtual void SomeMethod(SomeObject& os) {};

错误消失。但是我不能这样做,因为这会导致一个方法有两个主体。为什么会出现这种行为?我该如何克服这个问题?或者,在CLI中包含BS6标头时,我必须放入任何#杂注吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-16 12:25:17

听起来你没有在你的项目中包含'CPP文件‘。这也解释了为什么当你有两个物体时,你不会得到错误。要检查这一点,请尝试在CPP文件中放置一个故意的编译错误。如果编译器没有错误,这将证明你没有编译CPP文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7073598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档