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中导出析构函数。