0

私が作業しているプロジェクトの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で動作させるにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

0

調査後、この方法では混合アセンブリをロードできません。それらは純粋なMSILにしかなり得ません。

于 2012-10-01T03:17:04.073 に答える