私が作業しているプロジェクトの1つでは、関数を使用して、コードを.netDLLで完全に信頼できるアセンブリに動的にロードしAssembly.LoadFrom
ます。これまで、これは問題なく100%機能しています。
これで、上記を使用してロードする必要がある/ clr:pureでコンパイルされたVisual C++DLLができましたAssembly.LoadFrom
。実行するとBadImageFormatExceptionが発生しますが、これは本当に奇妙なことです。
Visual C ++プロジェクトには、次の3種類のCLRコンパイルオプションがあります。
/ clr
/ clr:pure
/ clr:safe
私に与えられた指示に従って、それは/ clr:pureの下でコンパイルされる必要があります。私の問題は、/ clr:pureを使用すると例外がスローされることです。/ clrに変更すると、例外もスローされます。/ clr:safeに変更すると、例外をスローせずにロードされます(これでテストが終了しました)。
したがって、これは実際には2つの部分からなる質問だと思います。
1)/ clr:safeは機能するが、他の2つは機能しないのはなぜですか?
2)/ clrで動作させるにはどうすればよいですか?
前もって感謝します!