1
votes

I am trying to execute a C# program on Windows XP (SP3) which references a managed C++ DLL compiled with VS2012. When compiling the C++ DLL, I have set the Platform Toolset to build to Windows XP (using the v110_xp option) and set minimum required version to 5.01 in linker options, and I already installed Visual C++ 2012 Redistributable Package on the Windows XP machine. But it didn't work.

Any idea on this?

1
What means "didn´t work"? Do you have "VS2012 Update 3" installed? ALso you should have installed microsoft.com/en-us/download/details.aspx?id=30679 and only deplay the release version. - Jochen Kalmbach
YES,I have installed "VS2012 Update 3" on my develop machine, and have installed "Visual C++ Redistributable for Visual Studio 2012 Update 3" on windows XP - Nick Sun
In my DLL, only one simple function, print one message. when running on my develop machine (windows 8), it prints the message.But on my windows xp, it does nothing. - Nick Sun

1 Answers

0
votes

As you mentioned Platform Toolset and v110_xp option, I'd risk assuming the question is about an unmanaged C++ DLL. Anyway, try compiling your DLL with the original VS 2012 distribution (no updates) and see if it works. I dealt with a similar issue caused by VS 2012 Update 2, which is described here. You could test each of your dependency DLLs (including VC++ redistributables) with DependencyWalker, to check if any of them is using a Win32 API not implemented by Windows XP. Just do it under XP itself.