2017-06-30 27 views
1

私はVisual Studioでオーディオソフトウェアプロジェクトを作成していました。私はwinformsを使用していないので、むしろ私は空のプロジェクトを開始したので、クロスプラットフォームにしたい。C++でChromium Embedded Frameworkを埋め込む方法

しかし、フロントエンドの部分にはHTML/CSS/JSを使いたいと思っていましたが、インターネット上では、Sciterが見つかりました。それはシンプルで使いやすいものでしたが、利用できなかった多くのhtml機能を使いたいので、マークまでではありませんでした。だから私はchromium embedded frameworkを使うことに決めました。

私はC++プログラミング、特にビジュアルスタジオを初めて使っているので、プロジェクトをインポートするためにはどのファイルをインポートする必要があるのか​​分かりません。最初はソースコードを手に入れようとしていたので、クロスプラットフォームとなりました。しかし、ソースコードをコンパイルするのは非常に難しいとわかったので、代わりに.dllファイルを使用することにしました。そして、私はCEFの標準的なウィンドウx64ディストリビューションをダウンロードしました。

しかし、私は文字通り私のプロジェクトにそれを含める方法について混乱しています。私はオンラインビデオを見たことがありますが、それらはC#用であり、C++を使用しています。私は.NET版のチュートリアルも見たことがありますが、.netコントロールやwinformsライブラリを使用していないので、それを使ってGUIを作成する方法やJavaScriptとのインターフェースに文字通り混乱しています。

私が欲しいのは、CEFのkisokインスタンスです。ここでは、html/css/jsをC++(C++関数やchrome APIに文字列値を渡して)を使ってロードします。私はVue.jsライブラリを使用して、これをjavascriptの部分でより簡単にするつもりです。そして、javasciptとC++の間でデータを出し入れするためのいくつかの方法

私はCEFSharpを使ってみましたが、私は惨めに失敗して元に戻りました。 今、私はlibcef.dllと他のそのようなファイルで立ち往生しており、何をすべきか理解できません。プロジェクトにincludeファイルを追加するのに問題があります。 .dllファイルとそのすべてのものを参照する方法が見つかりません。私はC++でサードパーティのライブラリをインポートする経験はありません。

私の問題に対処するリソースまたはチュートリアルをお勧めします。 (私はネイティブのC + +コードを使ってすべてをやりたがっていますが、後でLinuxやMacに移植したいのですが)

また、このCEFを誘導できるように私に示唆してくださいlinuxとmacに移植可能なコードベース。

ありがとうございました。

+0

初心者レベルのC++の場合、Chromiumをベースにした[WebEngineコントロール](https://doc.qt.io/qt-5/qtwebengine-index.html)を持つQt/QMLを使用する方がよいでしょう。 CEFのように。だから、基本的にはCEFと同じ機能を持っていますが、「電池を含む」パッケージです。彼らは[最小限の例](https://doc.qt.io/qt-5/qtwebengine-webengine-minimal-example.html)を持っていて、それは本当に簡単です。 – zett42

+0

私はQTを見たことがありますが、これは商用プロジェクトになるため使用したくないので、QTにお金を払うつもりはありません。 –

+1

@SoumyaKantiSar:Qtを商用プロジェクトでもダイナミックリンクで使用できます。こちら:https://www.qt.io/licensing-comparison/をご覧ください。あなたは、あなたの必要な機能が特に市販のリストに含まれていないことを確認する必要があります。 – Azeem

答えて

2

Chromium Embedded Frameworkには、デベロッパーのフォーラムがあります(http://www.magpcss.org/ceforum/index.php)。サポートサブフォーラムのFAQを参照してください。

Windows、OS X、およびLinuxで利用できるバイナリディストリビューションがあります。彼らは現在Spotifyによってここにホストされています:http://opensource.spotify.com/cefbuilds/index.html

付属のCEF3ファイルはネイティブC++ではなく、.Netです。 .Net用のCEF3をラップするCEFSharpプロジェクトがありますが、C#用です。

ほとんどの人は、CEFSimpleまたは(より完全な機能を備えた)CEFClientサンプルアプリケーションを使用して作業を開始します。これらのアプリケーションは、異なるOSと互換性があります。これらは、すでにコンパイルされたChromium + CEF3 DLLで使用するためのソースコードとして提供されています。

たとえば、新しいVisual Studioプロジェクトを開始し、CEFSimpleファイルをコピーし、CEF3 DLLの.libにリンクします。既存のロジックに従って、OS固有の部分を分離します。ネイティブCのWindowsでは

++あなたのEXEを構築しながら、リンカは、.libファイルを使用しています(Linking : .a, .lib and .def filesを参照してください):

Linker - Input (edit paths to match where you copied the binary files) 
..\..\cef_binary_3\Release\libcef.lib 
..\..\cef_binary_3\build\libcef_dll_wrapper\Release\libcef_dll_wrapper.lib 

あなたのアプリケーションを配布するために、あなたのEXEが含まれ、DLLを、.PAKファイルと2 _blob.binファイル。同じ.EXE以外のサンプルバイナリバージョンのCEFClientからのすべてのファイル。はい、圧縮されたサイズは実際に50 MB以上です! MicrosoftのIEウェブコントロールとは異なり、ブラウザのどの部分もオペレーティングシステムに含まれていないからです。

CEFフォーラムでフルスクリーンモードの実行に関するヒントを検索してください。 Windowsの場合、これはメインブラウザウィンドウが作成された時点でウィンドウスタイルビットWS_とWS_EXを変更することを意味します。

+0

私が間違っていると私を訂正しますが、.dllファイルがバイナリディストリビューションで提供されていると思います。なぜ、追加の.libが必要なのですか? そして、私はあなたのこの行を理解していませんでした。「既存のロジックに従ってOS固有の部分を分ける」 私はライブラリをリンクする初心者ですので、私を許してください。しかし、動的で静的なリンクは理解できませんし、リンクする方法も理解できません。 –

+0

DLLの場合でも、DLLをロードしてその機能にリンクするには、LIBファイルが必要です。上記の編集を参照してください。 –

+0

readmeまたはFAQリンクは、Visual StudioプロジェクトをCEFClient/Simple用に作成する方法を示しています。ソースから再度ビルドして、その場所で修正することができます。 –

関連する問題