Warum funktioniert MAKEINTRESOURCE ()?
Das Makro ist definiert als:
#define MAKEINTRESOURCEA(i) ((LPSTR)((ULONG_PTR)((WORD)(i))))
#define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i))))
Wie kommt es, dass dies verwendet werden kann, um entweder eine Ressourcen-ID (ein 16-Bit-Int ohne Vorzeichen) oder ihren Namen (einen Zeiger auf ein Array von Zeichen) anzugeben? Beschränkt dies den Adressraum (auf einem 32-Bit-System) nicht effektiv auf 16-Bit? Ansonsten, woher weiß das System, ob ich eine ID oder einen Namen verwende?