【发布时间】:2013-06-10 08:57:42
【问题描述】:
目前我正在开发一个解决方案,其中包含一个 C++/CLI 项目(它是一个原生 C++ dll 的包装器)和一个 C# WPF 项目(它使用 C++/CLI 包装器的功能)。
我遇到的问题是,当一个指向本地类的指针被实例化(在包装器内)时,会发生链接器错误。
类:
public ref class MCBiosUpdate
{
public:
MCBiosUpdate(void);
MCBiosUpdate(MCBiosUpdate^);
MCBiosUpdate(CBIOSUpdate&);
~MCBiosUpdate(void);
!MCBiosUpdate(void);
private:
CBIOSUpdate *pBiosUpdate; //Native C++ Class
};
导致错误的代码:
MCBiosUpdate::MCBiosUpdate(void) : pBiosUpdate(new CBIOSUpdate) //error LNK2028
{
}
输出:
1>MCBiosUpdate.obj:错误 LNK2028:未解析的令牌 (0A00000E) “公共:__thiscall CBIOSUpdate::~CBIOSUpdate(void)” (??1CBIOSUpdate@@$$FQAE@XZ)
- 如何解决链接器错误以使程序按预期运行?
- 导致此链接器错误的原因是什么?
- 如果对代码有任何改进或有任何建议可以帮助我解决问题;欢迎发表评论。
【问题讨论】:
-
该错误不是由您引用的语句引起的。但除此之外,它符合代码。链接器只是说它找不到 CBIOSUpdate 类的析构函数的实现。简单的错误,声明一个但忘记定义它。或链接它。
-
是的,链接器找不到析构函数的实现,因为我没有在 DLL 中导出它。