私は、マネージコードのライブラリを呼び出すアンマネージコードを持つアプリケーションのレガシーライブラリのいくつかを再編成しているところです。コードを再編成している間、次のローダーエラーが発生します。
...
'app.exe': Loaded 'C:\WINDOWS\system32\CsDisp.dll'
'app.exe': Loaded 'C:\WINDOWS\system32\psapi.dll'
'app.exe': Loaded 'C:\WINDOWS\system32\shell32.dll'
'app.exe': Loaded 'C:\appCode\Debug\daq206_32.dll', Binary was not built with debug information.
'app.exe': Loaded 'C:\appCode\Debug\SiUSBXp.dll', Binary was not built with debug information.
'app.exe': Loaded 'C:\appCode\Debug\AdlinkDAQ.dll', Symbols loaded.
'app.exe': Loaded 'C:\WINDOWS\system32\P9842.dll', Binary was not built with debug information.
LDR: LdrRelocateImageWithBias() failed 0xc0000018
LDR: OldBase : 10000000
LDR: NewBase : 00A80000
LDR: Diff : 0x7c90d6fa0012f6cc
LDR: NextOffset : 00000000
LDR: *NextOffset : 0x0
LDR: SizeOfBlock : 0xa80000
Debugger:: An unhandled non-continuable exception was thrown during process load
0xc0000018エラーはアドレス範囲の重複だと思います。それで、私は2つの質問があります。まず、どのリンカーオプションがこのエラーを引き起こす可能性がありますか?現在、/ DYNAMICBASE:NOおよび/ FIXED:Noとリンクしています。これは、以前のライブラリの一部が設定された方法であるためです。
次に、ローダーの冗長モードをオンにして、ローダーが何をロードしようとしているのかを正確に確認できるようにする方法はありますか?P9842はサードパーティのライブラリであるため、P9842の後に私のライブラリの1つにアクセスし、そのライブラリで失敗していると思います。絞り込めますか?ありがとう。