Problem bei Stringweitergabe
-
Vergiss die Funktion... StringConvA. Das "^" hätte mich gleich stutzig machen müssen.
Das ist C# nicht C++...
Das braucht uns nicht wundern, dass der Compiler das nicht frisst
-
Du hast kein Konsolen-Programm in C geschrieben, sondern in C++/CLI! Das macht immer noch keinen Sinn:
http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/
-
Ich vermute, er hat sich bei C++/CLI einfach nur verklickt. Er will schon C/C++...
Aber die Funktion, die er sich da rausgesucht hat, ist natürlich mitnichten für C++ geeignet
-
wie denn das jetzt ?
ich hab doch ein C++ Projekt gemacht...void sysani(....,const System::String ^Speicher) System::String ^Speicher_aaa= Speicher +"\\Teil.aaa"; char* filename = (char*)(void*)Marshal::StringToHGlobalAnsi(Speicher_aaa); fs = fopen(filename, "w");
so klappt das kompilieren, jedoch stimmen dann die \\ noch nicht und es kommt zum Fehler beim Ausführen
-
Jochen Kalmbach schrieb:
Du hast kein Konsolen-Programm in C geschrieben, sondern in C++/CLI! Das macht immer noch keinen Sinn:
http://blog.kalmbach-software.de/de/2010/03/05/ccli-und-winforms-macht-keinen-sinn/die sysani ist mal ein konsolenprogramm gewesen...
-
tegg schrieb:
wie denn das jetzt ?
[cpp]void sysani(....,const **System::String ^**Speicher)
*System::String ^Speicher_aaa= Speicher +"\\Teil.aaa";
char filename = (char)(void)Marshal::StringToHGlobalAnsi(Speicher_aaa);
fs = fopen(filename, "w");
[/cpp]Die fettmarkierten Dinger sind aber C#-Code
-
muss ich jetzt die ganze klick-kacke neu zusammenbauen ? oder kann ich das irgendwie konvertieren ? Aber in meinen Eigenschaften ist es ein C/C++ Programm....
ich schreib jetzt mal den string in eine datei und schau mal was da rauskommt
-
tegg schrieb:
void sysani(....,const System::String ^Speicher) System::String ^Speicher_aaa= Speicher +"\\Teil.aaa"; char* filename = (char*)(void*)Marshal::StringToHGlobalAnsi(Speicher_aaa); fs = fopen(filename, "w");
so klappt das kompilieren
Also wenn er sowas "System::String ^" übersetzen kann, dann hast du höchstwahrscheinlich ein "C++/CLI" Projekt angelegt. Ich kenne mich zwar in der MFC nicht aus, aber ich habe so meine Zweifel, dass es dort diese Konstruktion "System::String ^" gibt...
Die Experten mögen mich korrigieren, wenn ich falsch liege.
-
hmm...also Problem ist die char *filname ist einfach nur ein "H"
-
Zeig mal deinen Code. Was hast du denn jetzt genau gemacht?
Edit: Welche Art von Projekt hast du denn jetzt erzeugt?
-
Es ist ein C++/CLI Projekt. Das sieht man an den Einstellungen: "Common Language Runtime Support": steht auf jedefall nicht auf "None"...
-
bin schon wieder weiter... bin jetzt bei converttochar im form1.h am probieren und ein char zu übergeben
es sollte ein CLR - Windows Form Anwendung sein
-
Jochen Kalmbach schrieb:
Es ist ein C++/CLI Projekt. Das sieht man an den Einstellungen: "Common Language Runtime Support": steht auf jedefall nicht auf "None"...
Reine MSIL CLR Unterstüzung /clr:pure
-
Wenn du CLR machst, dann bist du aber hier im MFC(C++)-Forum falsch
-
okay...stimmt, ich bin da noch neu in dem Gebiet, sorry...könnte mich bitte jemand verschieben
-
Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wenn Du mit C++/CLI programmierst, benutze das .NET Framework - char Zeiger haben da meistens nichts zu suchen.
-
Evtl. solltest du sogar überlegen, C# zu programmieren...
Da du ja ganz offensichtlich noch nicht genau weißt was du willst, bist du frei in deinen Entscheidungen.
-
joa, eigentlich hätte ich gerne eine gui für mein c programm
char Speicher_aaa[]="D:\\Teil1.aaa"; char Speicher_bbb[]="D:\\Teil2.bbb"; fopen_s(fs,Speicher_sys, "w"); fprintf(fs,"blablablubb und noch vielviel mehr\n");
da die erstellten Dateien im selben Ordner sein müssen, habe ich über FolderBrowserDialog() einen Pfad, den ich um die Dateinamen erweitern möchte und dann einfach nur text in Dateien schreiben möchte...
-
error C2664: 'sysani': Konvertierung des Parameters 13 von 'wchar_t' in 'const wchar_t *' nicht möglich
wchar_t Speicher_aaa=Convert::ToChar(textBox1->Text + "\\Teil.aaa"); wchar_t Speicher_bbb=Convert::ToChar(textBox1->Text + "\\Teil.bbb");
soweit bin ich jetzt, so nah wie nie zuvor... jedoch find ich nix wegen kovertierung