textBox->Text in const char* casten ??
-
Hi wie es der Titel schon sagt wie kann ich
textBox->Text in const char* casten ??
Freue mich auf Antworten
Gruss
VistaNow
-
Was ist denn 'Text', ein CString? Dann mit GetBuffer() bzw. operator (LPCTSTR).
-
Leider Nicht, ein System::String^^

-
//Edit
Ich meine
System::String^^
-
Mit PtrToStringChars in Vcclr.h können Sie String in das systemeigene wchar_t * oder char * konvertieren. Dadurch wird immer ein Zeiger mit breiter Unicode-Zeichenfolge zurückgegeben, da CLR-Zeichenfolgen intern Unicode sind.
aus der MSDN

-
Funktioniert aber irgendwie nicht ^^
const char* chars = PtrToStringChars(textBox1->Text);
So ????
Dann kommpt folgender Fehler:
Fehler 1 error C2440: 'Initialisierung': 'cli::interior_ptr<Type>' kann nicht in 'const char *' konvertiert werden c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2005\projects\mytestform\mytestform\Form1.h 130
-
ganz so einfach scheints auch nicht zu sein
siehe folgendes Bsp.:#include < stdio.h > #include < stdlib.h > #include < vcclr.h > using namespace System; int main() { String ^str = "Hello"; // Pin memory so GC can't move it while native function is called pin_ptr<const wchar_t> wch = PtrToStringChars(str); printf_s("%S\n", wch); // Conversion to char* : // Can just convert wchar_t* to char* using one of the // conversion functions such as: // WideCharToMultiByte() // wcstombs_s() // ... etc size_t convertedChars = 0; size_t sizeInBytes = ((str->Length + 1) * 2); errno_t err = 0; char *ch = (char *)malloc(sizeInBytes); err = wcstombs_s(&convertedChars, ch, sizeInBytes, wch, sizeInBytes); if (err != 0) printf_s("wcstombs_s failed!\n"); printf_s("%s\n", ch); }
-
Hi habe den Fehler gemerkt aber so Funktioniert es auch nicht

pin_ptr<const char*> chars = PtrToStringChars(textBox1->Text);
Fehler:
Fehler 1 error C2440: 'Initialisierung': 'cli::interior_ptr<Type>' kann nicht in 'cli::pin_ptr<Type>' konvertiert werden c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2005\projects\mytestform\mytestform\Form1.h 130
Fehler 1 error C2440: 'Initialisierung': 'cli::interior_ptr<Type>' kann nicht in 'cli::pin_ptr<Type>' konvertiert werden c:\dokumente und einstellungen\admin\eigene dateien\visual studio 2005\projects\mytestform\mytestform\Form1.h 130
-
So kanns auch nicht gehen du must erst, wie im Bsp., nach wchar_t* konvertieren und dann nach char*.
// Conversion to char* : // Can just convert wchar_t* to char* using one of the // conversion functions such as: // WideCharToMultiByte() // wcstombs_s() // ... etc
-
Hi Danke Funktioniert ^^
Wiso machen die den das so Kompliziert, die könnten doch einfach dass Array der Textbox als normalen std::String machen

-
Wer weiss...
-
Hi, geht dass auch umgekerhrt ????
Also
char* nach System::String^ ??
-
Mit Sicherheit!
versuchs doch mal mit:String ^str = pChar;