我正在使用 VS2013 使用 v120_xp 工具集编译程序。该程序在 Windows 7 上运行得非常好,但是当我尝试在运行 XP SP3 的机器上运行该程序时,我得到了错误。
我正在编译 vs3_0 并且我已经尝试在具有 Radeon HD 3600 和 4600 的机器上运行它,它们都支持着色器模型 4_0。
我发现在目标机器上更新 DirectX 运行时时,这个错误消失了,但是这个修复不能用于我的场景,是的,我知道 Windows XP 不再受支持,但是我工作的公司有很多运行 Windows XP 的现场终端上的终端,因此对他们来说更新不是一种选择。
我已经运行了dependency walker并分析了我的程序,并得到了一个有趣的错误列表,所有这些都与MSVCR120D.dll有关,那么这可能是一个C运行时错误吗?以下是依赖walker日志:
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsAlloc") called from "MSVCR120D.DLL" at address 0x00BEEAD1 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsFree") called from "MSVCR120D.DLL" at address 0x00BEEAF4 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsGetValue") called from "MSVCR120D.DLL" at address 0x00BEEB17 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsSetValue") called from "MSVCR120D.DLL" at address 0x00BEEB39 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "MSVCR120D.DLL" at address 0x00BEEB5C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CreateEventExW") called from "MSVCR120D.DLL" at address 0x00BEEB7F and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CreateSemaphoreExW") called from "MSVCR120D.DLL" at address 0x00BEEBA2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "SetThreadStackGuarantee") called from "MSVCR120D.DLL" at address 0x00BEEBC5 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CreateThreadpoolTimer") called from "MSVCR120D.DLL" at address 0x00BEEBE8 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "SetThreadpoolTimer") called from "MSVCR120D.DLL" at address 0x00BEEC0B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "WaitForThreadpoolTimerCallbacks") called from "MSVCR120D.DLL" at address 0x00BEEC2E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CloseThreadpoolTimer") called from "MSVCR120D.DLL" at address 0x00BEEC51 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CreateThreadpoolWait") called from "MSVCR120D.DLL" at address 0x00BEEC74 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "SetThreadpoolWait") called from "MSVCR120D.DLL" at address 0x00BEEC97 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CloseThreadpoolWait") called from "MSVCR120D.DLL" at address 0x00BEECBA and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlushProcessWriteBuffers") called from "MSVCR120D.DLL" at address 0x00BEECDD and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FreeLibraryWhenCallbackReturns") called from "MSVCR120D.DLL" at address 0x00BEED00 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetCurrentProcessorNumber") called from "MSVCR120D.DLL" at address 0x00BEED23 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetLogicalProcessorInformation") called from "MSVCR120D.DLL" at address 0x00BEED46 and returned 0x7C8623D7.
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CreateSymbolicLinkW") called from "MSVCR120D.DLL" at address 0x00BEED69 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "SetDefaultDllDirectories") called from "MSVCR120D.DLL" at address 0x00BEED8C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "EnumSystemLocalesEx") called from "MSVCR120D.DLL" at address 0x00BEEDAF and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "CompareStringEx") called from "MSVCR120D.DLL" at address 0x00BEEDD2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetDateFormatEx") called from "MSVCR120D.DLL" at address 0x00BEEDF5 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetLocaleInfoEx") called from "MSVCR120D.DLL" at address 0x00BEEE18 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetTimeFormatEx") called from "MSVCR120D.DLL" at address 0x00BEEE3B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetUserDefaultLocaleName") called from "MSVCR120D.DLL" at address 0x00BEEE5E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "IsValidLocaleName") called from "MSVCR120D.DLL" at address 0x00BEEE81 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "LCMapStringEx") called from "MSVCR120D.DLL" at address 0x00BEEEA4 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetCurrentPackageId") called from "MSVCR120D.DLL" at address 0x00BEEEC7 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetTickCount64") called from "MSVCR120D.DLL" at address 0x00BEEEEA and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "GetFileInformationByHandleExW") called from "MSVCR120D.DLL" at address 0x00BEEF0D and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "SetFileInformationByHandleW") called from "MSVCR120D.DLL" at address 0x00BEEF30 and returned NULL. Error: The specified procedure could not be found (127).
我将非常感谢您对此的任何帮助,干杯。