Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Namenskonventionen bei API-Calls?

  Alt 3. Mai 2004, 10:36
"*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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat