Y121516 の大館お役立ち日記

秋田県大館市での生活

CppSharpの紹介

.NetからC/C++を呼び出す

.Net な言語(C#, Visual Basic, F# など)から C++(やC言語)のライブラリを呼び出したいことってありますよね。 そういう時には、P/Invokeを使うか、C/C++ライブラリをC++/CLIでラップしてできたアセンブリを呼び出すって方法があります。

P/Invoke

C# なら [DllImport("exported.dll")] みたいな感じで、Visual Basic なら <DllImport("exported.dll")> みたいな感じで DllImport 属性を使います。 Visual Basic 限定で Declare ステートメントを使う方法もあります。

C++/CLI

私個人のインターネットの観測によれば C++/CLI をメインの言語で開発している人はほとんどいなさそうです。 とはいえ、ネイティブと .Net のグルー言語としては最強です。C/C++ライブラリをラップして .Net から呼び出せる(おそらく唯一の) 高級言語です。

CppSharp

P/Invoke 呼び出しにせよ、C++/CLI によるラップにせよめんどくさいです。 そして、型の調整やらでうっかり間違える可能性だってあります。

その辺を楽にしてくれるのが CppSharp です。

Mono の下で開発されましたし、現実の問題を解決するためのツールとなっています。

GitHubのドキュメントの他に、検索すると日本語でも情報が見つかります。

ぜひ試してみてください。