1

私はこの問題を抱えており、すでにしばらくの間対処しています。最初に、アンマネージ コード (たとえば、dll_1、dll_2) を含む 2 つの dll と、C# でのマネージ アプリケーションがあります。私がすべきことは、マネージ コードで dll_1 のアンマネージ関数へのポインターを取得し、それを構造体にパックして、この構造体を引数として dll_2 のアンマネージ関数に送信することです。多分前にそのような問題に対処した人はいますか?

4

1 に答える 1

0

マネージド コードでは何もしませんが、DLL は同じプロセスに存在するため、IntPtr(プラットフォームに応じて自動的に 32 ビットまたは 64 ビットになります) を使用して、アンマネージド ポインターを渡します。もちろん、IntPtrを構造体に挿入して、外部呼び出しを使用するときに引数または戻り値として使用することもできます (例: [DllImport('YourDll')] static extern IntPtr ImportedFunction();)。

ただし、より多くの情報を提供するには、DLL 呼び出しとそのデータ構造について詳しく知る必要があります。

于 2010-01-18T14:25:37.407 に答える