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

时间:2013-10-11 04:45:20

标签: c# c++ visual-studio-2010 dll swig

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

我错过了哪些步骤?我看了几个例子,我基本上以同样的方式设置,但他们的例子明显更容易。

1 个答案:

答案 0 :(得分:1)

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

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