xamarin结合目标c库

时间:2015-05-08 07:21:54

标签: c# objective-c xamarin

我想在xamarin中绑定一个目标c库(用于使用电缆)。我是xamarin平台的新手,任何人都可以帮我将以下.h文件转换为Xamarin绑定项目中的“ApiDefinition.cs”。

main()

2 个答案:

答案 0 :(得分:2)

无法为您编写,但下面的示例是您可以在下面链接指南中了解更多信息的一般模式。您面临的主要挑战之一是确保代表的回调触发。要映射它,请查看“绑定协议”部分。

http://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/binding_objc_libs/

ApiDefinition.cs

using MonoTouch.ObjCRuntime;
using MonoTouch.Foundation;
using System;

namespace MyNamespace
{
  [BaseType (typeof (NSObject))]
  interface MyObjCWrapper
  {
    [Export("initWithArg1:arg2:arg3:")]
    void Constructor(string first, string second, string third);

    [Export("mySelectorTaking1arg:")] // note colon, takes 1 arg
    void DoSomethingWith1Arg(string filePath);

    [Export("getSomething")] // note no colon, takes 0 args
    int GetSomething();
}
  

要完成此绑定,您应该将本机库添加到   项目。您可以通过将本机库添加到项目中来实现此目的,   通过将本地库从Finder拖放到   解决方案资源管理器中的项目,或右键单击项目   并选择添加>添加文件以选择本机库。本地人   按照惯例,库以“lib”开头,以“lib”结尾   扩展名“.a”。执行此操作时,Xamarin Studio将添加两个文件:   .a文件和包含的自动填充的C#文件   有关本机库包含的信息:

你最终会得到一个像这样的文件(libLibraryName.linkwith.cs):

using System;
using MonoTouch.ObjCRuntime;

[assembly: LinkWith ("libLibraryName.a", SmartLink = true, ForceLoad = true)]

答案 1 :(得分:1)

使用Objective-Sharpie。它将为您完成最初的大部分工作,您只需填补空白......