1

我正在尝试为库制作 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..

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

4

1 回答 1

1

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

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

于 2013-10-13T21:53:41.270 回答