C# 错误LNK2028:实例化本机C++;C+中的类+/CLI 目前我正在研究一个包含C++/CLI项目(它是一个本地C++ DLL的包装器)和一个C++的WPF项目(它使用C++ /CLI包装器的功能)的解决方案。
我遇到的问题是,当一个指向本机类的指针被实例化(在包装器中)时,就会发生链接器错误 类别:C# 错误LNK2028:实例化本机C++;C+中的类+/CLI 目前我正在研究一个包含C++/CLI项目(它是一个本地C++ DLL的包装器)和一个C++的WPF项目(它使用C++ /CLI包装器的功能)的解决方案。,c#,c++,c++-cli,C#,C++,C++ Cli,我遇到的问题是,当一个指向本机类的指针被实例化(在包装器中)时,就会发生链接器错误 类别: public ref class MCBiosUpdate { public: MCBiosUpdate(void); MCBiosUpdate(MCBiosUpdate^); MCBiosUpdate(CBIOSUpdate&); ~MCBiosUpdate(void); !MCBiosUpdate(void); private: CBIOSUp
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)
“public:\uu thiscall CBIOSUpdate::~CBIOSUpdate(void)”
(?)更新@@$$FQAE@XZ)
是什么导致此链接器错误?
原因可能是pBiosUpdate
接口没有从DLL中导出以使DLL的客户端可见,在您的例子中是C代码
如何解决链接器错误,使程序按预期运行?
dllexport
.def文件
)导出DLL函数这个错误不是由你引用的那句话引起的。但在其他方面,它符合规范。链接器只是说它找不到CBIOSUpdate类的析构函数的实现。容易犯错误,声明一个,但忘记定义它。或者链接它。是的,链接器找不到析构函数的实现,因为我没有在DLL中导出它。现场。。。未在DLL中导出析构函数。