尝试使用 swig 将C++库与 C# 链接 - 不会让我添加对 C# 项目的 resulging dll 的引用

Trying to link C++ library with C# using swig - will not let me add reference to resulging dll to C# project

本文关键字:添加 项目 引用 dll resulging swig C++ 链接 库与      更新时间:2023-10-16

我正在尝试为库制作 c# 绑定。 我使用 cmake 从库源代码创建了一个 Visual Studio 2010 解决方案,并且编译得很好。 我使用随附的.i文件按照此处的说明(https://code.google.com/p/labstreaminglayer/source/browse/LSL/liblsl-Generic/AUTOGENERATE%20HOWTO.txt(使用cygwin创建包装器。 然后,我将生成的 liblsl_warp.cxx 文件添加到同一项目中。 它仍然编译得很好,所以我假设生成的.dll包含所需的绑定。

我已将该项目添加到我的 c# 应用程序中,并尝试将 c# 项目中的引用添加到生成的 dll(还尝试添加对该项目的引用(。 我得到的唯一错误是A reference to 'lsl' could not be added..

我错过了哪些步骤? 我看了几个例子,我基本上是按照相同的方式设置的,但它们的例子要容易得多。

SWIG生成C#和C++源代码。 C# 代码使用 DllImport 从C++端导入函数 - 它不使用类似 .net 的绑定。 因此,C++ DLL 不需要(也不能(注册,因此不能"引用"。 引用适用于已注册的 DLL。

因此,您有一个C++ DLL 和一个 C# exe。 只需确保 exe 可以找到C++ DLL,例如将其放在同一个文件夹中。 不要担心引用它。