v120_xpツールセットを使用してVS 2013でプロジェクトをビルドすると、LoadLibrary( "my.dll")が正常に戻ります。しかし、VS2017でv141_xpツールセット(プラットフォーム7.1)を使用すると、NULLとエラーコード4250が返されます。私は両方ともクリーンビルドを確実に行いました。LoadLibraryがエラー4250で失敗する:この操作は、アプリケーションコンテナのコンテキストでのみ有効です。
私はLoadLibrary(F11)にステップインできません。
その行を実行した後ProcessMonitorはFILEがCreateFileMapping関数にONLY読者とLOCKED示し、NAME RegQueryValueにHKLM \ SOFTWARE \マイクロソフト\ Windowsの\ CurrentVersionの\ SideBySide \ PreferExternalManifestにはありませんが、それ以外はすべてSUCCESS
DUMPBIN /ヘッダがあります両方のバージョンのmy.dllで同じ
依存関係ウォーカーには循環依存関係、未解決のエクスポートなどのエラーがありますが、動作する2013バージョンには同じエラーがあるようです。 VS 2017でmy.dllには、UCRTBased.dll、vcruntime140d.dllの依存関係が追加されています。
my.dllはBoost 1.64 & TBBに静的にリンクされていますが、どちらもWindowsストアやユニバーサルオプションなしでビルドされています。私はWindows 10とcmake 3.8を使用しています。 VSソリューションを生成するcmakeファイルに変更はありません。プログラムはあなたのプログラムが電流を変更しない場合には、プロジェクト設定のデバッグセクションで、(作業ディレクトリであると考えるところから実行されていること
LoadLibraryA("my.dll") called from "d:\myproject\x64\debug\my.EXE" at address 0x00007FF7FCED1DA2.
Loaded "d:\myproject\x64\debug\my.DLL" at address 0x00007FFA49D40000. Successfully hooked module.
Loaded "d:\myproject\x64\debug\abc.DLL" at address 0x00007FFA45190000. Successfully hooked module.
Loaded "c:\windows\system32\OLEAUT32.DLL" at address 0x00007FFA839F0000. Successfully hooked module.
Loaded "c:\windows\system32\MSVCP_WIN.DLL" at address 0x00007FFA83010000. Successfully hooked module.
Loaded "c:\windows\system32\OLE32.DLL" at address 0x00007FFA83750000. Successfully hooked module.
Loaded "d:\myproject\x64\debug\def.DLL" at address 0x00007FFA67FD0000. Successfully hooked module.
Loaded "d:\myproject\x64\debug\TBB_DEBUG.DLL" at address 0x00007FFA62BE0000. Successfully hooked module.
Unloaded "d:\myproject\x64\debug\abc.DLL" at address 0x00007FFA45190000.
Unloaded "d:\myproject\x64\debug\TBB_DEBUG.DLL" at address 0x00007FFA62BE0000.
Unloaded "c:\windows\system32\MSVCP_WIN.DLL" at address 0x00007FFA83010000.
Unloaded "c:\windows\system32\OLEAUT32.DLL" at address 0x00007FFA839F0000.
Unloaded "c:\windows\system32\OLE32.DLL" at address 0x00007FFA83750000.
Unloaded "d:\myproject\x64\debug\def.DLL" at address 0x00007FFA67FD0000.
Unloaded "d:\myproject\x64\debug\my.DLL" at address 0x00007FFA49D40000.
LoadLibraryA("my.dll") returned NULL. Error: This operation is only valid in the context of an app container (4250).
依存関係ウォーカーを忘れる。それは年月が経っても更新されておらず、Windows 7で導入されたリファクタリングされたシステムモジュールには完全には対応していません。代わりに、使用しているコードと、エラーコードを特定する方法を表示してください。 – IInspectable