|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 28.07.2007, 14:59 Titel: typedef struct tag... ?? |
|
|
Hi,
ich habe mal eine Frage:
Ich lese ja grade das Buch "Windows Programmierung von Charles Petzold"
und bin da öfters auf solche structuren gekommen:
CPP: | typedef struct tagPAINTSTRUCT
{...}
oder
typedef struct tagMSG
{...}
|
Was heißt dieses "tag" vor den structurnamen ?? _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 28.07.2007, 15:06 Titel: |
|
|
das ist die C-Methode, Strukturen zu definieren (sodass sie als Typen behandelt werden). Was in C++ CPP: | struct Message { ... }; | heißt, bedeutete in C ungf. CPP: | typedef struct { ... } Message; | So hatte die Struktur dann keinen eigtl. Bezeichner, sondern wurde nur über den Typ Message angesprochen. Um der Struktur dann auch einen solchen zu geben, haben die dem Beizeichner einfach ein "tag" vorne dran gestellt. Das ist im Prinzip dasselbe wie CPP: | struct tagMessage { ... };
typedef tagMessage Message; | Aber obwohl das in der WinAPI verwendet wird, solltest du dir das nicht angewöhnen, da es eben veraltet ist.
Gruß DXer |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 28.07.2007, 15:17 Titel: |
|
|
ok thx dann ignorier ich diese structuren einfach
edit://
Ach eine Frage habe ich noch:
Wenn ich mit std::string arbeite (Was ja angeblich besser sein soll, ka warum) und dann ASCII und UNICODE haben will, geht das dann wenn ich das so mache:
CPP: | string stext = TEXT("Hallo Welt");
|
_________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 28.07.2007, 15:46 Titel: |
|
|
RebornX hat Folgendes geschrieben: | Wenn ich mit std::string arbeite (Was ja angeblich besser sein soll, ka warum) und dann ASCII und UNICODE haben will, geht das dann wenn ich das so mache:
CPP: | string stext = TEXT("Hallo Welt");
|
|
nein, das würde nur gehen wenn du ANSI kompilierst. Bei UNICODE müsstest du nen anderen Typ nehmen (wchar_t intern), und zwar std::wstring. Du kannst dir, wie TCHAR, deinen eigenen, unabhängigen Stringtyp erstellen, und zwar indem du eine Header Datei tstring.h erstellst mit folgendem Inhalt: CPP: | #include <string>
#ifdef UNICODE
typedef std::wstring t_string;
#else
typedef std::string t_string;
#endif | Diese Datei inkludierst du dann in deine Projekte und benutzt die Strings so: CPP: | t_string text = TEXT(" dies ist ein unabhängiger String "); |
btw: also besser ist std::string, weil es sicherer ist. Bei char* musst du z.B. die Größe vorher festlegen, egal ob es zu viel oder zu wenig ist. Und falls du es dynamisch per new und delete machst, musst du sogar noch auf Memory Leaks achten. Bei std::string ist das völlig egal. Nur ein Problem gibt es in Verbindung mit der WinAPI: Du musst etwas kompatibel sein, und zwar wenn die WinAPI einen c-String erwartet musst du std::string::c_str() aufrufen, etc.
Gruß DXer |
|
Nach oben |
|
|
RebornX JLI'ler
Anmeldedatum: 16.03.2007 Beiträge: 169
Medaillen: Keine
|
Verfasst am: 28.07.2007, 15:52 Titel: |
|
|
ok gut, bis jetzt ist das alles was ich wissen wollte _________________ Besucht meine Seite:
www.cpparchiv.dl.am |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|