2

Mac OS Xでネイティブアプリケーションを作成するためにDを使用することを計画しています。もちろん、そのためには、DはCocoaAPIと対話する必要があります。このバインディングがどのように行われるのか、私にはわかりません。私はすでにCocadoを見て、Michel FortinのD-ObjCブリッジを知っています。そして、いくつかの詳細について啓蒙したいと思います。

  • CocoaをDに移植する彼らの(または他の可能な)アプローチは何ですか?—ここで私は基本的に技術的な読書ソース(本/記事/参考文献など)を求めます。

  • ObjCとのABI互換性を直接またはCABIを介して確立することは可能ですか?—スタックオーバーフローに関する質問があります。その答えは、 Objective-Cのランタイムリファレンスで何が達成できるかを説明しています。

  • この種のものをうまく機能させて、たとえばMac OS XのQtフレームワークのように、パフォーマンスと安定性のレベルを取得することは可能ですか?

私はこの分野での経験がまったくないので、技術的な欠陥は許してください。どんな助けでもかなりあります。

よろしくお願いします。

4

2 に答える 2

1

Jacob Carlborgのdlang.orgフォーラムで、この質問に対するより詳細な回答を入手しました。

于 2012-04-18T14:01:34.757 に答える
1
  • Cocoaポートのほとんどのポートが行うことは、.hを.diに変換し、薄いラッパーと一般的なユーティリティを提供することです。

    これには、正しい呼び出しopDispatch(string sel,A...)(A args)に変換されるオーバーロードを介した構文糖衣が含まれる可能性がありますobj.call1(arg1).call2(arg2)obj_msgsend(obj.ptr,NSSelectorFromString(sel),args)

  • C ABIを介して、D仕様で詳細を読むことができます。

  • Objがどんなに多くのことも可能であることを確認してください。CコンパイラはチェックできますDコンパイラはそれらを見つけるために必要な単体テストをチェックできません

于 2012-04-15T22:32:53.267 に答える