JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=f83e0e5d2669442937b5add20324e818Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

typedef struct tag... ??

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 28.07.2007, 15:59    Titel: typedef struct tag... ?? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 28.07.2007, 16:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 28.07.2007, 16:17    Titel: Antworten mit Zitat

ok thx dann ignorier ich diese structuren einfach Cool

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 28.07.2007, 16:46    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
RebornX
JLI'ler



Anmeldedatum: 16.03.2007
Beiträge: 169

Medaillen: Keine

BeitragVerfasst am: 28.07.2007, 16:52    Titel: Antworten mit Zitat

ok gut, bis jetzt ist das alles was ich wissen wollte Smile
_________________
Besucht meine Seite:
www.cpparchiv.dl.am
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum