COMを使用しないでC++アンマネージドアプリケーションからc#dllを呼び出す方法はありますか?COMなしのアンマネージC++アプリからC#dllを呼び出す
答えて
本当にあなたの唯一の選択肢は、C++ .netを使用するか、必要なものをエクスポートするためのC++ .netラッパーを作成することです。
エクスポートされた関数を使用して逆アセンブル、ILの修正、再アセンブルが実際に可能です。私はこれを数年前に混乱させ、dllを逆アセンブルし、潜在的にエクスポートできる機能のリストを提供するアプリケーションを作成しました。ユーザーはそれらを選択してILを書き直してすべてを再アセンブルすることができます。その後、管理されていないコードからdllを直接呼び出すことができます。または、管理コードからdllをp-invokeすることもできます(実用的ではありませんが、面白いです)。
確かに、これは.net言語自体でサポートされていない理由があります(それはMSILでもサポートされています)。少し遅れ
http://www.csharphelp.com/2007/03/exporting-managed-code-as-unmanaged/
C++/CLIでサポートされているので、静的なC++/CLI関数を__declspec(dllexport)すると自動的にCLRをロードするサンクが作成されます。もちろん、大きなトリックですが、CLRをロードせずにマネージコードを実行することはできません。 –
@ハンスILにエクスポートを追加すると、ILASMはアセンブリがネイティブのものであるかのように使用するために必要なすべてを行います。 –
は私がかもしれませんが、アウトthisを確認してください。私は、本番でこれを使用することはありません。
この小さなmsbuildタスクを使用すると、あたかもネイティブDLLであるかのように呼び出せるC#ライブラリを作成できます。 (たとえば、ネイティブDLLである必要があるアプリケーション用のプラグインを作成してください)
すべてをセットアップするproject templateを使用することを忘れないでください。
- 1. SQL Server 2008からアンマネージC/C++ DLL関数を呼び出す
- 2. C#クライアントアプリケーションからC#COMサーバーDLLを呼び出す
- 3. VBからアンマネージDLLを呼び出す
- 4. COM dllをアンマネージC++で使用する
- 5. アンマネージC++ DLLからC#
- 6. CString参照でアンマネージC++ DLLを呼び出す方法
- 7. PowershellからC#dllを呼び出す
- 8. アンマネージC DLLのパブリックフィールドをC#
- 9. アンマネージC++ dllの呼び出し側アセンブリ名を見つける方法
- 10. C#から管理されたC#COMオブジェクトを呼び出す
- 11. マネージコードからアンマネージDLL関数を呼び出す
- 12. C#からアンマネージC++ライブラリ(dll)を呼び出すと、アクセス違反エラー(0xc0000005)が発生する
- 13. C++でC#dllを呼び出す
- 14. C#コードでC++ dllを呼び出す
- 15. このDLL関数をC++/Cから呼び出す方法
- 16. C++ DLLからC#関数を呼び出す
- 17. C#プログラムからC DLLを呼び出す
- 18. C++/CLIアプリケーションからC#.dllを呼び出す方法は?
- 19. ネイティブWin32 C++コードからUWP C++/CX dllを呼び出す
- 20. C++/CLI - DLLで定義されたアンマネージ関数を呼び出す
- 21. C DLLからC#DLLを呼び出すことはできますか?
- 22. 別のCOM DLLへの呼び出しでVB.NET呼び出しCOM DLLがエラーになる
- 23. アンマネージDLL(VB Dll)からc#コードを使用したメソッド名の抽出
- 24. Cからdll関数の呼び出しでクラッシュする#
- 25. マネージコードからの呼び出し時にC++ DLLがクラッシュする
- 26. 配列でVBScriptからC#でCOMを呼び出す
- 27. VB6 COMをC++/CLIから呼び出す方法
- 28. アンマネージC++ mfcアクティブx dllからC#ダイアログを起動
- 29. vbscriptでC#dllを呼び出す
- 30. .netから呼び出せる非常に単純なC++ DLL
[埋め込みモノ](http://www.mono-project.com/Embedding_Mono)... – cdhowie
は、混在モードのDLLを使用して実行できます。 –
[C++からC#コードを呼び出す]の複製が可能です。(http://stackoverflow.com/questions/778590/calling-c-sharp-code-from-c) – cdiggins