Symbian OS C++ Descriptors 機能の他のオペレーティング システムへの有効な移植があるかどうかを知っている人はいますか? hereに向けたコードがいくつかあったことを思い出しますが、最後にテストしたときは、いくつかの欠落/未定義の型のために G++ でコンパイルされませんでした。
前もってありがとう、タイソン
私はそのようなポートを見たことがありませんが、OS のほとんど (記述子を含む) が EPL ライセンスの下で開かれる Symbian Foundation プラットフォーム リリースを待つことをお勧めします。
ここで考慮すべき点がいくつかあります。
本質的な記述子 API は、特定の一連のリソース制約に対応するために 10 年以上前に作成されました。彼らは間違いなく Symbian OS C++ を今日に至るまで別物にしていますが、それらを新しいオペレーティング システムに移植する根拠は、せいぜい議論の余地があるに違いありません。
Symbian (まあ、今は Nokia) は実際に記述子をカバーする特許を少なくとも 1 つ持っています。記述子のソース コードがオープン ソース化された場合に、この作業に多くの時間を費やす前に、記述子のソース コードがどうなるかを正確に調べたいと思うでしょう。
実際、Symbian エコシステムは、しばらくの間、記述子から完全に離れようと懸命に努力してきました。OpenC/C++、QT、および新しい EUserHL ライブラリの間には、記述子に代わる非常に実行可能な C++ の代替手段があります。
Symbian Developer Library のディスクリプタ ドキュメントは実際には非常に適切であり、別のオペレーティング システムへのクリーン ルーム ポートの基礎として間違いなく使用できます。ただし、ほとんどの開発者が積極的に回避しようとすることはかなりの作業です。
完全な記述子 API は、CBase、CCleanupStack、TReal などのさまざまな Symbian C++ イディオムに依存していることに注意してください。適切なポートを作成するには、間違いなく多くの作業が必要です。もちろん、標準の C++ 例外を使用して離脱メカニズムを実装することもできます (Symbian が中断から離れたときに行ったことなので) が、それでも...
記述子に関して本質的にプラットフォーム固有のものは何もなく、Symbian ソースがオープン ソース化されると、それらを別のプラットフォームに簡単に移植 (つまり、再コンパイル) することができます。ただし、記述子関数の一部が「離れる」ため、Symbian クリーンアップ スタック機能も取り込む必要があります。
これらは Symbian C++ の最悪の部分 (つまり、最も非標準的で広く嫌われている部分) の一部なので、なぜそうしたいのか知りたいです。