私は C/C++ で書かれたプログラムを取り、いくつかの引数を入力として受け取り、出力として変数を返すように main 関数を変更し、そこから Win32 DLL を作成しました。次に、InterOp を使用して最初の DLL にアクセスする .NET DLL を作成しました。C# アプリに .NET DLL をロードすると、DLL から System.DllNotFoundException が発生します。これは、プログラムにメモリの問題がなく、両方の Win32/.NET dll が同じディレクトリ (別の場所) にあるため、本当に困惑しています。 main 関数を変更しても、コードは実際には変更されていません)。このスレッドで解決策が提供されました。これは、以前の私の最初の質問でした。その答えは正しいと確信していますが、何かが足りないだけです。
私の VS ソリューションはこちらからダウンロードできます。このソリューションには、Win32 DLL、.NET DLL、および .NET DLL を参照する winform アプリの 3 つのプロジェクトが含まれています (ただし、テストしようとすると DLL 例外が発生します)。ヘルプやデバッグのガイダンスをいただければ幸いです。
- 更新: 以下のすべてのヒント/提案を試しましたが、まったく同じエラーが発生します。作業が簡単になる場合は、上記のハイパーリンクから私の VS ソリューションをダウンロードできます。