Veröffentlicht 22. Februar 200619 j Moin, Ich habe Probleme damit unter VC++ 6 einen einfachen String zu generieren, ich habs erst mit nem größeren Programm versucht und um Fehler auszuschließen dann nochmal mit ner winzigen Applikation: #include <string.h> int main() { string hallo="huhu"; return 0; } Wenn ich das so compiliere meckert er rum: --------------------Konfiguration: mistvieh - Win32 Debug-------------------- Kompilierung läuft... exec_bat.cpp C:\test\exec_bat.cpp(6) : error C2065: 'string' : nichtdeklarierter Bezeichner C:\test\exec_bat.cpp(6) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hallo' C:\test\exec_bat.cpp(6) : error C2065: 'hallo' : nichtdeklarierter Bezeichner C:\test\exec_bat.cpp(6) : error C2440: '=' : 'char [4]' kann nicht in 'int' konvertiert werden Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat Fehler beim Ausführen von cl.exe. exec_bat.obj - 4 Fehler, 0 Warnung(en) Also bin ich einfach mal hergegangen und habe anstelle der doppelten Anführungszeichen (") einfache verwendet ('). string hallo='huhu'; Daraufhin meinte er nur noch 3 Fehler zu haben: --------------------Konfiguration: mistvieh - Win32 Debug-------------------- Kompilierung läuft... exec_bat.cpp C:\test\exec_bat.cpp(6) : error C2065: 'string' : nichtdeklarierter Bezeichner C:\test\exec_bat.cpp(6) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hallo' C:\test\exec_bat.cpp(6) : error C2065: 'hallo' : nichtdeklarierter Bezeichner Fehler beim Ausführen von cl.exe. Daraufhin habe ich einfach mal in der MSDN nach der Syntax gesucht, diese meinten der String müsste dann so aussehn: string hallo=("huhu"); Woraufhin erneut folgendes kam: --------------------Konfiguration: mistvieh - Win32 Debug-------------------- Kompilierung läuft... exec_bat.cpp C:\test\exec_bat.cpp(6) : error C2065: 'string' : nichtdeklarierter Bezeichner C:\test\exec_bat.cpp(6) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'hallo' C:\test\exec_bat.cpp(6) : error C2065: 'hallo' : nichtdeklarierter Bezeichner C:\test\exec_bat.cpp(6) : error C2440: '=' : 'char [4]' kann nicht in 'int' konvertiert werden Diese Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat Fehler beim Ausführen von cl.exe. exec_bat.obj - 4 Fehler, 0 Warnung(en) Achja, ich habs auch schon mit einbinden der <stdio.h> versucht, aber das hat ihn nicht wirklich beeindruckt. Kann mir wer sagen warum der Fehler auftreten?
22. Februar 200619 j Die Klasse string ist in der Headerdatei <string> deklariert und steht im Namensraum std: #include <string> int main() { std::string hallo="huhu"; }[/code]
22. Februar 200619 j Ah gut funktioniert nun soweit, danke. Wäre noch ne Frage da: Ich zitier einfach mal was genau ich da rein schreiben will, dass sollte das ganze vereinfachen: std::string mapprinter="rundll32 printui.dll,PrintUIEntry \/n \"PDFCreator\" \/y"; Die Backslashs sind enthalten um klarzustellen dass es sich um sonderzeichen handelt, die auch so drinstehn solln, damit er /n nicht als next line command sieht sondern wirklich als text wie er so ist. weiss jedoch nicht ob er das auch wirklich macht, denn er spuckt mir das hier aus: --------------------Konfiguration: test - Win32 Debug-------------------- Kompilierung läuft... exec_bat_.cpp C:\test\exec_bat_.cpp(13) : warning C4129: '/' : Nicht erkannte Folge von Escape-Zeichen C:\test\exec_bat_.cpp(13) : warning C4129: '/' : Nicht erkannte Folge von Escape-Zeichen exec_bat_.obj - 0 Fehler, 2 Warnung(en) Was ich an Hand dieser Meldung bezweifle, und ich nun jetzt nciht weiss was er tut. desweiteren, wenn er das nicht so erkennt wie er es soll wäre die Frage, wie ich ihm das verständlich machen kann.
22. Februar 200619 j Für normale Schrägstriche brauchst du keine Escapesequenz. Einfach /, nicht \/. Zeilenumbrüche macht man mit \n, nicht mit /n.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.