ネイティブ C++ コードからスタティック ライブラリを作成する、かなり大きなレガシー nmake (Win32) プロジェクトがあります。このライブラリを C#/.Net アプリケーションで使用する必要があります。過去に多くの努力を重ねた結果、スタティック ライブラリをマネージ C++ ライブラリにラップすることに成功し、C#/.Net アプリケーションで参照できるようになりました。しかし、nmake プロジェクトの開発者から更新を受け取り、その間に自分のビルド マシンで多くのアップグレードを行った後、動作しなくなりました。
ただし、ビルド プロパティですべてのプリプロセッサ定数を設定することにより、nmake プロジェクトの cpp ファイルとヘッダー ファイルをインポートし、VS 2010 で Win32 スタティック ライブラリにビルドすることができます。ビルド構成の種類を DLL に設定し、C#/.Net アプリケーションで Win32 出力への参照を追加しようとすると、P/Invoke を使用することを望んでいますが、「MyLibrary への参照を使用できませんでした」というメッセージが表示されて失敗します。追加されます。」
Win32 ライブラリをビルドして C#/.Net プロジェクトから参照できるようにし、P/Invoke を使用できるようにする方法はありますか?