Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

1

11.11.2006, 18:27

Fehler mit Eingabefeld

hi,
also ich greife mal mein altes thema wieder auf.
ich habe jetzt mehrere möglichkeiten probiert aus dem eingabefeld der tribase gui den text in eine char* variable zu bekommen.

das geht auch soweit. aber sobald ich die variable auslese in z.b. im spiel den namen anzeigen zu lassen kommt immer nur sowas wie "<B&()/&" und auch andere sachen, obwohl da eigentlich "Test" stehen sollte.

bitte um hilfe. danke

Stefan

Alter Hase

Beiträge: 668

Wohnort: Innsbruck

  • Private Nachricht senden

2

11.11.2006, 18:32

hi!

Kannst du die paar Zeilen Code zeigen, wie du den Text aus der Gui herausliest und dann anzeigst?

Wie wird der Text in der tribase gui abgespeichert? Als string?
Ansonsten würde ich einfach der GUI Klasse eine Methode GetText oder so machen, die dir den String zurück gibt.


cya,
Stefan

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

3

11.11.2006, 20:16

C-/C++-Quelltext

1
2
3
pElement    = pGUI->GetElement(304);
pText       = (tbGUIInput*)(pElement);
            g_pFuture->m_pSaveLoad->Load_Profil(pText->GetText());


si wird der Text aus der GUI geholt. es kommt in form eines char zeigers (char* ....).

hier würde jetzt der eingegebene tet zum profilladen benutzt werden. das klappt auch. aber wenn ich den text jetzt in einer variable zwischenspeichere und anschließend anzeigen lassen möchte (auch mit der GUI), dann kommt eben dieses komische zeugs raus.

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

4

11.11.2006, 20:38

wie speicherst du ihn denn in der variable?

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

5

11.11.2006, 22:10

naja so:

C-/C++-Quelltext

1
char* Name = g_pFuture->m_SaveLoad->SetName(pText->GetText());

dbGAMES

Treue Seele

Beiträge: 323

Wohnort: Frankfurt

Beruf: Student

  • Private Nachricht senden

6

12.11.2006, 13:26

also wenn es funktioniert wenn du den string direkt aus dem eingabefeld liest dann wird es wohl an deiner SetName funktion liegen...

7

15.11.2006, 17:53

Hi

Für mich sieht das so aus, dass Adresse und nicht der Variableninhalt ausgegeben wird...
fka tm

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

8

15.11.2006, 18:51

Zitat von »"Ghostrider"«


C-/C++-Quelltext

1
char* Name = g_pFuture->m_SaveLoad->SetName(pText->GetText());
versuch mal

C-/C++-Quelltext

1
2
char Name[512] = "";
strcpy(Name, g_pFuture->m_SaveLoad->SetName(pText->GetText()));

bzw

C-/C++-Quelltext

1
2
char Name[512] = "";
strcpy_s(Name, 512, g_pFuture->m_SaveLoad->SetName(pText->GetText()));

für VC 2005

Wenns nicht klappt nimm einfach mal nur pText->GetText() als Kopierquelle, ka wozu du dein g_pFuture da brauchst.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

9

15.11.2006, 20:00

Re: Hi

Zitat von »"TrikkieMikkie"«

Für mich sieht das so aus, dass Adresse und nicht der Variableninhalt ausgegeben wird...


Korrekt,
das was ihr da oben macht ist schlichtweg falsch. Reborn hat bereits eine Lösung gepostet. Es geht aber auch mit dem string Objekt aus der STL:

C-/C++-Quelltext

1
std::basic_string<char> MyString = g_pFuture->m_SaveLoad->SetName(pText->GetText());


mit der Methode c_str() bekommt man den Pointer

Werbeanzeige