GCCコンパイラのCLIバックエンドを使用して、コンパイル済みLIB X264が1つありますか?
質問
GCC コンパイラのCLIバックエンドを使用して、1つのコンパイル済みlib x264を有する。(.NET DLLにコンパイル済みX264)
解決
C99機能を使用していますか?そうでなければ、/clr:pure
オプションを持つVisual C ++はトリックを実行する必要があります。他の.NETプロジェクトが呼び出すことができるエントリポイントを定義するには、INを混合したのは少しのC ++ / CLIが必要ですが、それらは完全に別々のファイルに入ることができます(C-Projectsを使用してC専用のソースファイル全体を共有できます)。
編集:この作業をするための基本ガイド:
- Visual Studioでは、C ++ / CLIクラスライブラリプロジェクト を作成します。
- Cソースファイルをすべてプロジェクトに追加
- プロジェクト構成では、ヘッダーが見つかったようにインクルードパスを設定します。
- プロジェクト構成では、
/clr:pure
に「共通言語ランタイムの使用」を設定します。
- 新しいプロジェクトウィザードによって作成された.cppファイルで、使用したい関数をプロトタイプするヘッダファイルに
#include
ディレクティブを追加します。 - 新しいプロジェクトウィザード(前述の.cppファイルで)作成された
ref class
では、Cライブラリ関数を呼び出す関数(静的関数)を追加します。 - コンパイル、C#プロジェクトの参照としてこの.dllを追加し、 を楽しんでください。
ヒントとして、ライブラリ内のすべての関数についてref class
に転送機能を作成する代わりに、(特定のプロジェクトに役立つ特定の定義のために)の束を呼び出すことで、(特定のプロジェクトに役立つ)機能を作ることができます。ライブラリ関数
.NET marshal_as
をC文字列に変換するのに適したSystem::String
テンプレートに快適に入りたいと思うでしょう。
所属していません StackOverflow