Reputation: 3497
I am having a problem with a 32-bit ATL dll that I have created---whenever I use the dll on a Windows XP (32-bit) computer it crashes without any warnings. I think the issue is related to the version of Windows that I compiled the dll on, but I'm not sure. Just a bit of history:
I initially developed the dll on a Windows XP (32-bit) box with Visual Studio 2008. This version of the dll worked fine on Windows XP (32-bit) and Windows 7 (32-bit and 64-bit). Then, I got a new development box with Windows 7 (64-bit) and Visual Studio 2010. I converted my VS2008 project to VS2010, compiled it and it works perfectly on Windows 7 (32-bit and 64-bit) machines; however, when I run it on a Windows XP (32-bit), it crashes.
The funny thing is that I was able to successful regsv32 the dll on the XP machine, but when I ran dependency walker, it said that it was missing a bunch of files:
api-ms-win-core-console-l1-1-0.dll
api-ms-win-core-datetime-l1-1-0.dll
api-ms-win-core-debug-l1-1-0.dll
api-ms-win-core-delayload-l1-1-0.dll
api-ms-win-core-errorhandling-l1-1-0.dll
api-ms-win-core-fibers-l1-1-0.dll
api-ms-win-core-file-l1-1-0.dll
api-ms-win-core-handle-l1-1-0.dll
api-ms-win-core-heap-l1-1-0.dll
api-ms-win-core-interlocked-l1-1-0.dll
api-ms-win-core-io-l1-1-0.dll
api-ms-win-core-libraryloader-l1-1-0.dll
...any many more of the same
I copied all of these files from my development machine to the Windows XP box and now dependency walker tells me:
Error: The Side-by-Side configuration information for "c:\documents and settings\poibri01\desktop\distributable\WERUI.DLL" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).
Error: Modules with different CPU types were found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
I don't know where to go from here. Can anyone help me?
Edit
Upvotes: 0
Views: 3163
Reputation: 30842
These dlls I think are specific to Windows 7, so they won't work on XP. I suspect that either you have something in the manifest file that's specific to Windows 7 or you are specifying a minimum version in _WIN32_WINNT
or WINVER
, eg see http://msdn.microsoft.com/en-us/library/aa383745%28v=vs.85%29.aspx
To see what's in the manifest file, use the mt tool:
mt -inputresource:mydll.dll;#1 -out extracted.manifest
Upvotes: 1