"*A" ist die
Ansi-Charackter Version. "*W" die
Unicode (WideCharackter Version). Unter
Unicode Betriebssystemen vom Microsoft (NT ff.) ist die A-Version eigentlich nur eine leere Hülse in der die Zeichen nur von
Ansi nach
Unicode umgewandelt werden.
Aufrufen tzut man sowieso explizit keine dieser Versionen, sondern immer die Ohne "A" oder "W". Unter nicht
Unicode Betriebsystemen wird dann die A-Version genommen, sofern vorhanden, wenn nicht sowieso eine Funktion diesen Namens existiert. Unter
Unicode Betriebssystem, wie Windows 2000, handelt es sich dabei nur um ein in der WinUser.h definiertes Markro:
Code:
#ifdef
UNICODE
#define CreateWindowEx CreateWindowExW
#else
#define CreateWindowExA
#endif // !
UNICODE
Unter Windows 200 enthält der Programmcode der A-Version lediglich eine Umwandlung der
Ansi-Zeichenfolge in
Unicode und den anschließenden Aufruf von der W-Version. Nach der Rückkkehr der W-Version gibt die A-Version noch die zuvor zur Umwandlung belegten Speicher wieder frei.
Ich hoffe, das ist erstmal ausführlich genung.