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

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

26.09.2007, 10:55

char* zu System::String^

ich hab das problem dass ich da eine char variable in der hand habe, und diese gern in eine textbox schreiben würde..

jedoch muss ich diese var zuerst in system::string^ convertieren.. und das klappt nicht..

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
char* buf = (char*)(void*)Marshal::StringToHGlobalAnsi(Message);
    
    send(s, buf, strlen(buf), 0);

    rc = recv(s, buf, 256, 0);

    // [...]


    buf[rc]='\0';
    Target->Text = System::Convert::ToString(buf);


Zitat von »"Compiler"«


Warnung 1 warning C4800: 'char *': Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten möglich) 79
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

2

26.09.2007, 11:09

gehts vielleicht mit

C-/C++-Quelltext

1
Target->Text = System::String(buf);

?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

3

26.09.2007, 11:16

Re: char* zu System::String^

Zitat von »"$nooc"«


Zitat von »"Compiler"«


Warnung 1 warning C4800: 'char *': Variable wird auf booleschen Wert ('True' oder 'False') gesetzt (Auswirkungen auf Leistungsverhalten möglich) 79


Das Problem hier ist das jeder Zeiger automatisch zum Typ bool[/b] konvertiert werden kann von C++.

Aber System::String bietet ja einen entsprechenden Konstruktor an!
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

4

26.09.2007, 11:49

mit ..

C-/C++-Quelltext

1
Target->Text = System::String(buf);


schreibt der compiler

Zitat


Fehler 1 error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)': Konvertierung des Parameters 1 von 'System::String' in 'System::String ^' nicht möglich 79


edit:
kann mir jemand verraten was das symbol ^ eigentlich für eine bedeutung hat?

System::String^
scheint was anderes zu sein als
System::String

O_o
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

26.09.2007, 12:18

Genau, das ist was ganz anderes! Es ist ein "handle" zu einem Objekt auf dem verwalteten Heap. So ähnlich wie ein Zeiger auf den Heap, aber eben vom GC verwaltet. Du brauchst also gcnew um das Objekt zu erstellen...
@D13_Dreinig

grek40

Alter Hase

Beiträge: 1 491

Wohnort: Dresden

  • Private Nachricht senden

6

26.09.2007, 17:47

Bei der Arbeit mit .Net würde ich übrigens zu C# raten... das ist einfach wesentlich besser auf die .Net Entwickung angepasst und wenn man C++ halbwegs drauf hat braucht es auch fast 0 Einarbeitungszeit.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

26.09.2007, 18:31

danke für die antworten ! :)

da ich jetzt einigermaßen von TheProgrammer aufgeklärt wurde, hab ich entschlossen das ganze noch mal neu aufzuziehen und das ohne diesem CLI ^^

mehr basic ist in meinem fall wohl immer noch die beste variante C++ zu lernen!

also macht euch schon mal auf weitere posts von mir gefasst *harhar* :D

lg $nooc :roll:
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

26.09.2007, 22:00

Naja wenn du nur Netzwerk machen willst (was auch so anspruchvoll genug ist), kannst du auch auf die .net Komponenten zurückgreifen. Die dürften dir schon viel abnehmen und es dir ermöglichen dich mehr auf das große ganze zu konzentieren ;)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

27.09.2007, 11:39

So siehts aus. Das Problem warum viele Projekte scheitern ist einfach das sich die Leute zu viel vornehmen. Die Einstellung: "Ich mach alles selbst, weil ich ja dann am meisten lerne" ist falsch, wenn man ein Projekt durchziehen will!
@D13_Dreinig

10

27.09.2007, 15:38

Ich hab in keinem erfolgreichen Projekt soviel gelernt wie in den gescheiterten. Außerdem sind TCP Sockets für einen Chat jetzt nicht wirklich schwerer als die Komponenten von .NET!

EDIT: Außerdem kann .NET auch recht verwirrend sein wenn man mit "normalem" C++ noch nicht richtig klar kommt. Man sollte immer schrittweise vorgehen!
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

Werbeanzeige