13:03:53)追加された行はこの色です。削除された行はこの色です。.NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。[#i8022e3e]まずは「[[マーシャリング]]」を参照して下さい。~基本が解ればなんとかなると思います。-先ずは「[[マーシャリング]]」を参照して下さい。Core]]でのサポート状況について--P/Invoke(DllImport)はサポートされている模様。Packsへの移行]]でもサポートされていない模様。[#y87eef73]以下の2つの方法があります。-DLLのインターフェイスをマネージドコード(.NET)に公開する方法。-COMのインターフェイスをマネージドコード(.NET)に公開する方法。***DLLのインターフェイスをマネージドコード(.NET)から使用する方法。[[サンプルコード>#e290321a]]、[[参考>#x720ec35]]を参照。***COMのインターフェイスをマネージドコード(.NET)から使用する方法。[[サンプルコード>#e290321a]]、[[参考>#x720ec35]]を参照。[#t34c2941]以下の2つの方法があります。-.NETのアンマネージド拡張でDLLインターフェイスをC/C++、COBOL側に公開する方法と-.NETアセンブリでCOMインターフェイスをCOMユーザに公開する方法があります。***.NETのアンマネージド拡張(C++/CLI)でDLLインターフェイスを[[DLLユーザ>DLL/COMユーザ]]に公開する方法。[[サンプルコード>#e290321a]]、[[参考>#x720ec35]]を参照。***.NETアセンブリでCOMインターフェイスを[[COMユーザ>DLL/COMユーザ]]に公開する方法。[[参考>#x720ec35]]を参照。[#e290321a]コチラが参考になります。VC、VB6(unmanage)の相互運用のテストです。master~https://github.com/OpenTouryoProject/SampleProgram/tree/master/Other/InteropWithUnmanage~>.NET(manage)⇔VC、VB6(unmanage)間の相互運用のテストです。.NET(manage))を行なう相互運用。C++/CLIのブリッジDLLを使用して、アンマネージコードからマネージコードを呼び出す。[#t9ae5615]-P/Invoke(相互運用マーシャラー)に標準実装されている模様。-恐らく、自動的にマーシャリングされるのだと思います。[[参考>#x720ec35]]を参照。[#vae2a281]マーシャリングの動作のイメージができていないと、正しい処理を実装できない可能性があります。~-[[.NET側のコールバック関数をC/C++から呼び出したい>#t9ae5615]]の逆-マーシャリングの動作のイメージができていないと、~正しい処理を実装できない可能性があります。以前、callback実装を正しく実装できないことがあった。[#u83bfdb8]C++のEXEからC#のメソッドを呼び出します。このときの引数でC++側のコールバック関数のアドレスを渡します。このあと、外的要因でC#のDLLから上記のコールバックを呼び出そうとしていますが、コールバック呼び出しで例外エラーとなります。-C++のEXEからC#のメソッドを呼び出します。-このときの引数でC++側のコールバック関数のアドレスを渡します。-このあと、外的要因でC#のDLLから上記のコールバックを呼び出そうとしていますが、~コールバック呼び出しで例外エラーとなります。[#f52beaa8]C++からC#は直接呼べないのでアンマネージド拡張(C++/CLI)でDLLのエクスポート関数経由で.NETに接続する必要があると思います。.NETにCの関数ポインタを直接渡しても.NETからの呼び出しはできないので、C++/CLI経由にする必要があると思います。-C++からC#は直接呼べないのでアンマネージド拡張(C++/CLI)でDLLのエクスポート関数経由で.NETに接続する必要があると思います。-また、.NETにCの関数ポインタを直接渡しても.NETからの呼び出しはできないので、C++/CLI経由にする必要があると思います。そこで思いついたのは、+C++/CLI内部でコールバックするメソッドを持ったオブジェクトを作成し、C#のメソッド経由でそのオブジェクトを渡す。C#からこのオブジェクトのメソッドを経由してC++にコールバックする。+C++/CLIでC#から呼ぶためのDLLエクスポート関数を作る。このエクスポート関数にCの関数ポインタを渡してコールバックする。+C++/CLI内部でコールバックするメソッドを持ったオブジェクトを作成し、~C#のメソッド経由でそのオブジェクトを渡す。~C#からこのオブジェクトのメソッドを経由してC++にコールバックする。+C++/CLIでC#から呼ぶためのDLLエクスポート関数を作る。~このエクスポート関数にCの関数ポインタを渡してコールバックする。逆(.NETのコールバック関数をC/C++から呼び出したい)は標準でサポートされているようです。@IT~http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12478&forum=7~>恐らく、自動的にマーシャリングされるのだと思います。[#abacdc98]1.で解決しました。[[上記>#f52beaa8]]の1.で解決しました。