I'm compiling the program using VS2013 using the v120_xp toolset. The program runs perfectly fine on Windows 7 however as soon as I try and run the program on a machine running XP SP3 I get the error.
I'm compiling vs3_0 and I have tried running this on machines with Radeon HD 3600 and 4600, both of which support up to shader model 4_0.
I've found that when updating the DirectX runtimes on the target machine this error goes away, however that fix can't be used for my scenario, yes I understand Windows XP is not supported anymore however the company I work for has a lot of terminals on live estates running Windows XP, so for them updating isn't an option.
I have run dependency walker and profiled my program and have got an interesting list of errors all to do with MSVCR120D.dll, so is this possibly a C runtime error ? Here are the dependency walker logs:
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).
I would massively appreciate any help on this, cheers.