So now we have:
LoadLibraryA("KERNEL32.DLL") - returns BFF70000h on Win 95 OSR2.5 (determined by LoneCrusader)
- returns BFF70000h on Win 98SE (confirmed by dencorso and snuz2)
- returns BFF60000h on Win ME (confirmed by loblo)
- returns 77E80000h on Win 2k Pro
- returns 7C570000h on Win 2k Adv Srv (determined by tomasz86)
- returns 7C800000h on Win XP Pro SP2 (determined by Joseph_sw)
- returns 7C800000h on Win XP Pro SP3 (determined by dencorso)
My most wholehearted thanks to those who helped test LOADDR so swiftly!
I think, by now, my program LOADDR.EXE is suffciently tested and validated to be used reliably, whenever necessary, with any dll. It is intended to be used as a tool, together with Dependency Walker, to help finding out more info from Program Error Message Boxes, as outlined by jumper in post #38
However, interestingly, the originally intended purpose of LOADDR notwithstanding, the small collection of load addresses for Kernel32.dll collected here do, in fact, appear to show that:
1) It may possible to differenciate the Windows OS families based solely on the kernel32's the load address, since Win 9x/ME use 0xBFFX0000, while the NT-family prefer 0x7XXX0000;
2) Service packs seem not to influence the load address used, but Client as opposed to Server variants do.
And Happy Easter to you all!