我有一个项目,我需要为本地 C++ SDK 制作一个 Visual C++ 包装器,以便最终可以在 C# 中使用它。
SDK 包含我正确包含的 .h 文件(这些文件没有编译错误)和一些需要引用的 .lib 文件。这似乎是棘手的部分。
正如我在这个问题中解释的那样,每当我尝试调用属于库的函数时都会出错。错误如下所示:
error LNK2080: unresolved token (0A000027) "public: static class vhtIOConn *__clrcall vhtIOConn::getDefault(enum vhtICRConn::DeviceType)"
error LNK2019: unresolved external symbol "public: static class vhtIOConn * __clrcall vhtIOConn::getDefault(enum vhtIOConn::DeviceType)"
据我了解,C++/CLR 期望__clrdecl
原生 C++ 提供__clrcall
.
解决这个问题的正确方法是什么?我在很多地方读到这是可能的,但我还没有看到任何实际的工作示例。请注意,我使用的是 Visual Studio 2010。