Ok in a previous thread I had an question about dlls on which my programm based.
With DEPENDS.EXE from the Visual Studio I worked out that my programm (a dll) need some system dlls. I have two versions of my programm, one older which works on any system and a much newer version which I think only works on win xp and up, not on 2000.
I found out that my newer version has one more system dll on which it is based, than the older version. And that was advapi32.dll so I looked into my source code for code which loads the advapi32.dll and found it in RegQueryValueExA, I deleted that entry and now my old version and my new version are based on the same system dlls.
But my new version does not run even with this modifications. So I think it has to do with the version of the system dlls the two versions of my programm use.
But my question how to replace old system dlls which newer ones (KERNEL32.DLL, USER32.DLL, WS2_32.DLL)? I tested it on one of my pcs. I replace the dlls on a 2000 system with the dlls of a XP system the result was a total crash of the 2000 system.
Any ideas? I mean I want to use the new features I have in my newer programm but not on the cost of uncompatibility.
Hope you understand my very bad english ;)
I guess you found out the hard way that you cannot replace those DLLs :rolleyes: Its a little supprising that MS-Windows even allowed you to replace them because I thought that starting with W2K the system prevented them from being replaced unless the installer is running under some special permissions (I don't know what permissions are needed).
For what its worth, here's an artical about dll hell :D
I might be wrong here but I believe you might be looking for the latest Windows Platform SDK? you can get that from here:
you would think that WFP (Windows File Protection) would have denied you from replacing those DLLs.
anyways I would think this would be more appropriate in the Windows Programming forum?
Yes with disabling the WFP and some rename tricks of the dlls it worked so I had a system crash ;)
Anyone an idea how to find out what functions or whatever I have in my new programm which makes it umcompatibel to the system dlls under win 2000. When I know them I can find a way to use other code.