C# を使用して、C++/Cli で記述された dll をロードしようとしています。次のコマンドを使用しました。
Assembly assembly = Assembly.Load(assemblyName);
以前は問題なく動作しており、何が変わったのか正確にはわかりませんが、今日、dllをロードしようとすると次のエラーが発生し始めました
System.AccessViolationException: {"保護されたメモリを読み書きしようとしました。これは多くの場合、他のメモリが破損していることを示しています。"}
dll とそれを読み取るコードの両方が同じソリューションにあり、dll 自体は頻繁に変更されます (したがって、dll を使用する理由)。
誰かがこの例外を引き起こす可能性があることを知っていますか?
補遺:
最近追加したブーストを使用するライブラリに絞り込みました。私BOOST_LIB_DIAGNOSTIC
はそれが以下を使用していることを発見しました:
lib ファイルへのリンク: libboost_date_time-vc100-mt-gd-1_54.lib
lib ファイルへのリンク: libboost_thread-vc100-mt-gd-1_54.lib
lib ファイルへのリンク: libboost_system-vc100-mt-gd-1_54.lib
lib ファイルへのリンク: libboost_chrono-vc100-mt-gd-1_54.lib
同様の問題に対処しているように見えるブースト投稿を見つけましたが、実際には私の問題を解決しませんでした。BOOST_ALL_DYN_LINK
プリプロセッサ定義を使用するように指示されていますが、それはさらにリンケージ エラーを引き起こすだけです。
致命的なエラー LNK1104: ファイル 'boost_date_time-vc100-mt-gd-1_54.lib' を開けません