首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonoTouch C#和Obj-C混合?

MonoTouch C#和Obj-C混合?
EN

Stack Overflow用户
提问于 2011-07-07 21:22:54
回答 1查看 1.1K关注 0票数 1

my last question的优化之后,我发现更容易相信在游戏中进一步优化代码以获得更好的性能是不可能的。

所以现在我有了一个新的想法,我想知道它是否可能实现,甚至是否值得实现。由于性能的明显瓶颈来自于基于.net的物理处理,我在想,是否有可能在基于objective-c或C++的物理引擎(如box2D)中与单声道进行交互?

例如,在Mono代码中,我会执行类似CreateBox()的操作,但在幕后,该框是在Obj-C/C++中创建的。或者,当我进行物理更新时,我简单地调用Mono中的函数,而主要工作发生在Obj-C/C++中

如果这是可能的,谁能给我指出正确的方向开始呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-07 22:03:53

是。

有两种方法可以做到这一点,通过一个C API和一个Objective-C API。

使用code,用C编写本机代码(或使用extern "C"编写C++ ),将代码编译到静态库link your MonoTouch app against the static library中,然后使用P/Invoke访问C函数。但是,与需要指定库名的“正常”P/Invoke不同,您需要指定"__Internal"作为库名:

代码语言:javascript
复制
[DllImport ("__Internal")]
static extern void MethodInStaticLibrary ();

This same technique is used by MonoTouch to call from e.g. System.dll into the MonoTouch runtime.

使用Objective-C是相同但不同的。您需要的不是导出C ABI的静态库,而是导出Objective-C ABI的静态库,链接到静态库,然后是provide an API binding for your Objective-C library

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6611281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档