Unterschied TCHAR/char?
-
Hi,
was ist eigentlich der unterschied zwischen TCHAR / _TCHAR / char _tmain(), main()..etc?
Zudem ist das sehr umständlichimmer die bestimmten typen zu konvertieren, wenn es teilweise funktionen gibt, die kein _TCHAR oder TCHAR unterstützen..Ciao
-
Am Beispiel ....
int main(int argc, char* argv[]) { char sz[] = "hallo"; HWND h = ::FindWindow( NULL, sz ); return 0; }
sual studio 2005\projects\pokertest\pokertest\pokertest.cpp(13) : error C2664: 'FindWindowW': Konvertierung des Parameters 2 von 'const char [12]' in 'LPCWSTR' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
??
-
Du hast eine UNICODE Anwendung, welche halt mit Widecharakter arbeitet. Um einfach von UNICODE auf MBCS umzuschalten, gibt es den Type TCHAR. Schau dir einfach mal die Definition an, dann wirst du erkennen, das er im fall von UNICODE für ein wchar_t und für MBCS für ein char steht.
Ein weiterer Punkt z.Bsp. International einsetzbare Software (Lokalisierung).
Gruss
-
Hmm Jop. Wie dir sicherlich schon aufgefallen ist ist auch FindWindow usw. nur ein define was im Unicodebuild durch FindWindowW und ansonnsten durch FindWindowA ersetzt wird. TCHAR ist dies in etwa für den Datentype char ... evt. einfach wirklich mal den tchar Header angucken ...