我想在xamarin中绑定一个目标c库(用于使用电缆)。我是xamarin平台的新手,任何人都可以帮我将以下.h文件转换为Xamarin绑定项目中的“ApiDefinition.cs”。
main()
答案 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。它将为您完成最初的大部分工作,您只需填补空白......