ファイルDLLを作成する方法。すべての言語開発者がそれを使用できると思います。C++を使用して作成した場合、言語.Netはそれを使用できます。しかし、JAVAはどうですか??? といくつかの他の言語
2 に答える
他のプラットフォームや言語で使用できる DLL を作成する唯一の保証された方法は、静的 C 関数をエクスポートする言語/プラットフォームを作成することです。最も簡単な方法は、C および C++ で直接記述することですが、他の言語でも可能です。そうすれば、C、C++、.NET/C#/VB ( DllImport
P/Invoke を使用)、および Java (JNI を使用) から呼び出すことができます。他の言語も C 関数のインポートをサポートしています。
(通常) クラスやその他の型をエクスポートすることはできません。C 関数が構造体を使用する場合は、DLL のコンシューマーが使用できるように、それらをヘッダー ファイルまたはその他の定義に文書化する必要があります。
COM (インターフェイスやその他の型のエクスポートをサポートする) や新しい WinRT メタデータ形式など、他のアプローチもありますが、これは新しいものであり、広く展開されていません。そして、COM は痛みの練習です。
C#、C、および C++ 以外の Java およびその他の言語は、C コードとして作成された dll を使用できません。Java 仮想マシンを使用してジャストインタイム バイトコードを実行する Java と、インタプリタを使用する Ruby/Python/その他のスクリプト言語など、これらはまったく異なる言語です。実際、dll 自体は C/C++/C# の一部にすぎません。Microsoft が互換性を意図しているため、C# のみが C/C++ dll を使用できます。
一方、ラッパーを作成して、作成したコードを他の言語で使用できるようにすることもできます。