我计划使用 D 在 Mac OS X 上创建 native 应用程序。为此,当然,D 必须与 Cocoa API 交互。我不知道如何完成这种绑定(bind)。我已经看过Cocado并且知道 Michel Fortin 的 D-ObjC bridge ,并希望了解一些细节:
他们(或任何其他可能的)将 Cocoa 移植到 D 的方法是什么? - 在这里我主要要求技术阅读资源(书籍/文章/引用资料等);
是否可以直接或通过 C ABI 与 ObjC 建立 ABI 兼容性? — 有一个question on stackoverflow其中答案描述了 Objective-C's Runtime Reference 可以实现的目标;
让这种东西很好地工作并获得像 Mac OS X 上的 Qt 框架那样的性能和稳定性水平是否可行?
我在这个领域没有任何经验,所以请原谅我的任何技术错误。任何帮助将不胜感激。
预先感谢您的回复。
最佳答案
Cocoa ports 的大多数 ports 都会将 .h 转换为 .di 并提供一个瘦包装器和通用实用程序,
这可能会通过
opDispatch(string sel,A...)(A args)
重载包含一些语法糖,这些语法糖将翻译obj.call1(arg1).call2(arg2 )
到正确的obj_msgsend(obj.ptr,NSSelectorFromString(sel),args)
调用您可以通过 C ABI 阅读更多相关信息 in the D spec
当然,无论 Obj. C 编译器可以检查 D 编译器无法检查,需要单元测试才能找到那些
关于macos - 如何酿造 D- cocoa 波特酒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10141847/