DotNet1.1を使用していたときにC#でこの問題が発生しました
問題はこれです。私は管理されていない dll を持っています。これには、(他の引数の中でも) 関数ポインターを受け取る関数があります。C# コードで DLLImport を宣言するときに、デリゲートを渡します。ただし、C# のデリゲートにはstdcall
呼び出し規約がありますが、アンマネージ関数にはcdecl
関数ポインターが必要です。したがって、私の素朴なアプローチはクラッシュを引き起こしました。http://www.codeproject.com/KB/cs/cdeclcallback.aspxある人が、私が理解しているように、MSIL ハッキングによってデリゲートの呼び出し規約を変更できる優れたライブラリを作成しました。物事はうまくいった、まで...
VS2008 と新しいバージョンの .NET に移行しました。このバージョンでは、上記のライブラリは動作しません。私は実際には C# や .NET の専門家ではありません。実を言うと、彼のライブラリが何をするものなのかほとんど理解していません (オープン ソースではありますが)。ただし、C# の新しいバージョンには、私の問題に対するより良い解決策があることを願っています。
だから、SOの専門家、お尻の痛みを手伝ってください:)