从C#调用从C(swig接口)导出的函数

时间:2017-05-01 17:39:24

标签: c# c xamarin.ios swig

我有一个C语言的函数,其定义类似于

uint8 *callme (uint8 a, uint8 b, uint8 c)

在interface.i文件中,我将函数定义为

%module abc
%{
.... C Header files (.h)
%}
extern void uint8 *callme (uint8 a, uint8 b, uint8 c);

我使用生成的.cs文件生成了带有XCode Cocoa touch库和.dll文件的.a文件。

我试图在Xamarin iOS应用程序中使用我的C#代码调用此callme函数。 但我不知道如何将值传递给此函数。每次我收到错误"无法从数据类型转换为abc.SWIGTYPE_p_uint8"

1 个答案:

答案 0 :(得分:0)

SWIG创建* SWIGTYPE_p _ **的每种类型都是SWIG无法理解的类型。

您需要查看Typemaps

您可以在[swig_file] / lib / csharp中找到typemaps.i中的C#类型映射示例。

如果你有一个uint8的正确类型图,你的问题应该得到解决。