2016-09-06 48 views
-1

我有一些c代码,我没有写一些复杂的东西,并返回一个数组。我一直试图在xamarin.mac的一个动态库中使用这段代码来从我的c#代码中的extern函数中获取这个数组,但没有成功。我已经在其他地方读过,我应该尽可能地避免在c#中使用指针,但我不知道我该怎么做。在c#中使用指针从外部函数(xamarin.mac)返回数组

我的C#代码是很长,但我使用

[DllImport("librp_origin.dylib")] 
     static extern IntPtr counter(int number); 

导入从DLL中的函数,并

private IntPtr number; 
partial void go(NSObject sender) 
     { 
      golabel.StringValue = "Doing the thing. . ."; 

      number = counter(2); 

      golabel.StringValue = string.Format("Thing returned {0}", number); 
     } 

试图访问阵列。

上面的c是一个简单的示例程序,它接受一个整数,并打印出一个20x20的整数数组给功率x,并且x每次增加。我知道打印出一个指向标签的整个指针是无稽之谈,但这与我的解决方案非常接近。任何帮助将是惊人的!

+0

你有什么问题?将'IntPtr'转换回数组? – dylansturg

+0

是的,我认为这是问题,设法得到它从谷歌的一些帮助修复,抱歉的无意义的问题,并感谢 – user2769075

回答