001
30.06.2011, 19:14 Uhr
0xdeadbeef
Gott (Operator)
|
Das kann so eigentlich nicht sein. Meinst du _T()?
Wie dem auch sei, du kannst einen _bstr_t auch eine einfache Zeichenkette geben. Nachlesen kann man das hier, eine Umwandlung passiert dann automatisch.
Es gibt im WinAPI einen Datentyp TCHAR (bzw. LPTSTR, LPCTSTR etc.), um den sich WinAPIs gesamtes String-API aufbaut. TCHAR ist abhängig von den Projekteinstellungen entweder char oder wchar_t, und sämtliche WinAPI-Funktionen lösen je nach Projekteinstellung zu einer Variante auf, die an entsprechenden Stellen entweder char oder wchar_t erwarten. Es gibt da außerdem ein Makro _T(), das um Stringliterale benutzt wird, beispielsweise
C++: |
/* LPCTSTR == TCHAR const * */ LPCTSTR foo = _T("bar");
|
Je nach Projekteinstellung expandiert _T("bar") entweder zu "bar" oder zu L"bar".
Die Schreibweise T"foo" ist mir nicht bekannt. Es wäre prinzipiell möglich, ein Makro zu definieren, das je nach Projekteinstellung zu nichts oder L expandiert, aber ein Bibliotheksentwickler müsste ziemlich durchgeknallt sein, um ein Makro namens T zu definieren - ein Programmierer kann ja durchaus mal auf die Idee kommen, selbst T als Bezeichner zu benutzen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |