9

HTML/CSS/JavaScript を使用してアプリケーション GUI を作成し、C++ バックエンドをすべてクロス プラットフォームにする必要があります。QtWebKitXULRunner、および Mozillaで簡単なテストを行いました。

簡単な睾丸から、私は非常に打ちのめされていることに気づきました。それは、ブラウザーのライブラリ/フレームワークの展開サイズです。大きい: 8 MB 以上。

私が見逃しているある種の小さな埋め込みブラウザはありますか?

4

5 に答える 5

5

他のプラットフォームについては知りませんが、Windows でこれを行う最小の方法は、システムに組み込まれている Web ブラウザー コントロールを使用することです。これは、プログラミングが非常に複雑な COM に基づいています。次のコードは、そのような獣を取得します。

HWND htmlWindow = ::CreateWindowExA(
  dwExStyle,
  ATLAXWIN_CLASS,
  "about:blank",
  dwStyle,
  x, y, w, h,
  hwndParent,
  NULL,
  hInstance,
  NULL
);

CAxWindow2 helperWindow;
helperWindow.Attach(htmlWindow);
CComPtr<IWebBrowser2> theWebBrowserControl;
HRESULT hr = helperWindow.QueryControl(&theWebBrowserControl);

上記のコード サンプルは、この COM のことを理解しようと何週間にもわたって苦労した結果です。まあ、それが何らかの形で役立つことを願っています...

注: 上記のサンプルは ATL (MFC ではありません) に依存します。

于 2009-08-09T18:47:42.900 に答える
4

dilloには c 呼び出し規則が必要だと思いますが、必要に応じて行うことができます。JavaScript や Flash はありませんが、CSS はサポートしています。

質問をもう一度読むと、dillo が現在サポートしていない JavaScript が必要であることがわかります。ごめん。

于 2009-08-09T14:37:11.593 に答える
1

問題を解決するかもしれない提案があります:

Windows では IE コントロールを使用し、Linux では Mozilla を使用します (おそらく、ロード可能な動的ライブラリとして利用できるでしょう)。

これによりアプリは最小になりますが、コードから簡単に処理できるように IE/Mozilla のラッパーを作成する必要があり、HTML/CSS/JS はクロスブラウザーである必要があります。

于 2009-08-09T14:36:07.087 に答える
0

8 MB: ファイル (またはフラッシュ ストレージ) のサイズについて話しているのですか? ブラウザの操作メモリ要件はコードベースよりも重要であると予想しています....しかし、あなたの質問にはこれがありません。Qtwebkit について言及しているため、製品で他の Qt ライブラリがアクティブになっていますか?

あなたのニーズに大きく依存します。互換性、CSS、画面サイズ、パフォーマンスはどうですか?フリーソフトウェアですか、それともライセンス供与されていますか? どのライセンス条件 (つまり、GPL であるかどうか)。もっと具体的に言えますか?

パフォーマンスが高く、標準に準拠しているブラウザは、簡単に 16 MB 以上の費用がかかります。Opera、特に Operaデバイスは非常に興味深いものでした。これは非常に標準に準拠し、カスタマイズ可能で高性能ですが、メモリ使用量も 16 ~ 32 MB の領域にあります。

于 2009-08-10T09:32:24.333 に答える
0

完全にテストされていない別のアプローチ: 単純な Web サーバー (たとえば、Boost::Asio にはこの問題に関するチュートリアル/例があります) をプログラムに、おそらく別のスレッドに含めます。次に、ユーザーが選択した Web ブラウザーが、プログラムによって開始されたばかりの Web サーバーにサーフィンできるようにします。

于 2009-08-09T19:16:18.927 に答える