0

7 から 11 までのバージョンの XULRunner で C++ コードを適切に実行しています。

    nsRefPtr<gfxWindowsSurface> targetSurface = new gfxWindowsSurface(hDC, gfxWindowsSurface::FLAG_FOR_PRINTING); 
    nsRefPtr<gfxContext> ctx = new gfxContext(targetSurface);

しかし、XULRunner 12 以降でコンパイルしようとすると、リンケージ エラーが発生します。

error LNK2019: unresolved external symbol "public: __thiscall gfxContext::gfxContext(class gfxASurface *)" (??0gfxContext@@QAE@PAVgfxASurface@@@Z) 
error LNK2019: unresolved external symbol "public: __thiscall gfxWindowsSurface::gfxWindowsSurface(struct HDC__ *,unsigned int)" (??0gfxWindowsSurface@@QAE@PAUHDC__@@I@Z) 

xul.lib の dumpbin を作成しましたが、現在、THEBES API のエクスポートがないことがわかりました。SDK のバージョンが 11 から 12 に変更されたときに、それらは削除されました。最新の xulrunner SDK のバイナリ XPCOM で gfxWindowsSurface と gfxContext を使用する方法はありますか?

ありがとう、

サージ

4

1 に答える 1

0

関連する変更はバグ 683891です。詳細な議論についてはバグ 718985も参照してください。第三者がグラフィックス コードに直接アクセスできるようにすることは、もはや望ましくないと考えられているようです。したがって、あなたの質問に対する答えは次のとおりです。いいえ、在庫の XULRunner でこれを行うことはできなくなりました。そのため、目的を達成するための別の方法 (バグで提案されているような高レベルの描画サーフェスなど) を探すか<canvas>、この特定のパッチを元に戻して独自の XULRunner ビルドを作成することができます。

于 2012-07-18T11:01:52.883 に答える