Microsoft独自のアンマネージDLLのP/Invokeシグネチャを生成するツールに遭遇しました: PInvoke Interop Assistant
サードパーティのアンマネージDLLのP/Invokeシグネチャを生成する同様のツールはありますか?
または、サードパーティにフィードする方法DLL to PInvoke Interop Assistant
編集: 実際の問題 解決しようとしています
Googleはすぐに http://www.pinvoker.com/ を見つけました(互換性はVS2005、2008、および2010としてリストされています。新しいバージョンで動作するように更新されていないようです)
MicrosoftのC++/CLIコンパイラでも、/clr:safe
および#include
ヘッダーファイル。p/ invokeコードを生成します。 ILSpy(無料)またはRed Gate Reflector(以前は無料でした)。
UIの3番目のタブである "SigImp Translate Snippet"とマークされたアンマネージDLLに PInvoke Interop Assistant を使用します。ヘッダーを「ネイティブコードスニペット」ウィンドウにコピーして貼り付け、[生成]を押す(または[自動生成]をオンにする)だけです。例として、ここに 私の質問 からのコードをいくつか示します。何らかの理由で、エラーはエラーパネルに表示されず、生成されたコードの上部にコメントとして表示されることに注意してください。
すでにいくつかの人が言っているように、生成されたコードはガイドとして使用する必要があります-必要なものを正確に得るには変更を加える必要があるかもしれません。
このプロジェクトはアクティブであり、タスクに有望に見えます: https://github.com/mono/CppSharp
ネイティブのDLL C-style DLLエクスポート関数とC++ DLLエクスポートクラスの両方を含む xInterop C++ .NET Bridge with .NET to Native C++ Bridge を使用します。これは、いくつかの制限付きで無料で評価できます。
免責事項:私は xInterop C++ .NET Bridge の作成者です。
別の選択肢は SharpGenTools です。 SharpDXは、directx apiのバインディングを「自動的に」作成するために使用します。 CppSharp もあります。これは、QtSharpがネイティブC++/Cライブラリへのバインディングを生成するために使用します。これまで、CppSharpは.Net Framework 6以降とのみ互換性があります。