我想知道是否有一个项目中混合C#和对象 - C代码的方式。具体来说,我想使用的Cocos2D为我的OBJ-C UI和调用一些MonoTouch的C#-Library中,做一些计算,并得到一些值回。有没有办法做到这一点?或者,也许周围的其他方法,我。即建设MonoTouch的和调用的Cocos2D-的功能呢? 感谢。

有帮助吗?

解决方案

这是您所描述的设置是可能的,但因为它是当你在MonoTouch的整个项目的管道并不顺利。这其实是我们如何自举的MonoTouch:我们把现有的Objective-C的样品,然后我们通过一个使用托管代码替换位之一。

我们丢弃的那些样品,因为它们bitrot。

但你仍然可以得到这个工作,使用的mTouch的--xcode命令行选项来为你生成一个示例程序,然后你想从产生template.m复制位到您的main.m.自定义所需的部件,以及刚刚从那里开始的XCode项目。

在开发周期中,您将继续使用mTouch触摸--xcode

其他提示

重新:未知(谷歌):

我们实际上这样做所描述的。

有关快速启动看到这个页面,但页面上的最后一个代码段是错误的,因为它省略了“--xcode” - 参数。 http://monotouch.net/Documentation/XCode

您所要做的嵌入您的单双EXE / DLL到一个Objective-C程序是编译的SharpDevelop源,然后用这些参数的mTouch运行:

/Developer/MonoTouch/usr/bin/mtouch --linksdkonly --xcode=output_dir MyMonoAssembly.exe

这仅适用于MonoTouch的完整版。该试验不允许使用“--xcode” -argument。如果你想的mTouch保持未引用的类在编译的输出是必须的“--linksdkonly” -argument,否则去掉无用的代码。

接着的mTouch编译程序集成原生ARM-代码(文件扩展名为.s),并且还生成它加载单Runtime和代码中的XCode / ObjC程序内的XCode模板。现在,您可以使用此模板马上和包括您的OBJ-C代码或从“main.m文件” -file提取运行时加载代码,并将其插入到现有的XCode项目。如果使用现有的项目还必须对所有的.exe / .dll / .S文件从mTouch触摸作出的Xcode-输出目录复制。

现在你有你的单双运行和装配在一个Xcode项目加载。与您的沟通装配,你必须使用单嵌入-API(不MonoTouch中的一部分,但单声道)。这些都是C风格的API调用。对于一个很好的介绍请参见此页面

另外,单 - 嵌入-API文档可能会有所帮助。

你有你的OBJ-C代码现在要做的是让嵌入-API调用。这些措施可能包括:获取应用程序域,让组装,获得组装的形象,找到您要使用,实例化从该类的对象,找到类方法,在调用对象的方法,封装方法参数的类C-阵列,并将它们传递给方法调用,获得和提取方法的返回值。 有上面的嵌入-API-DOC-页上的这样的例子。

您只是要小心你的库内存消耗,作为单运行时会占用一些内存为好。

因此,这是从对象 - 到C#的方式。如果你想从C#/单声道到您的OBJ-C-程序调用,你必须使用MonoTouch的-绑定,它描述的此处

您也可以使用纯的C-方法调用从嵌入/ P /调用的API。

希望这可以让你开始。

在上周末有消息说有人已经移植的Cocos2D到.NET,所以你也可以做.NET整个工作:

http://github.com/city41/CocosNet

的Cocos2D开始作为一个Python项目,后来得到了移植到Objective-C的,现在有一个积极的努力将其带到C#。这还没有结束,但作者接受补丁,可能是前一个更好的办法。

这MonoTouch中调用目标C肯定看起来可能的。请参阅 Objective-C中选择的例子

什么库,你打电话?或许有一个Objective-C当量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top