Hi, ich habe volgendes problem: Ich möchte einen String^ meinstring; in ein Array unsigned char test[10]; packen. Habe bis jetzt nichts zu dem Thema gefunden. PS: arbeite mit Visual C++ 2005 Express MFG Jörn M
Was bitte ist String^ für ein Datentyp? Statt nur das Entwicklungswerkzeug zu nennen, könnte es mehr als nützlich sein, auch die verwendete Programmier_sprache_ zu nennen. Versuchst Du Dir gerade die Finger in C, C++ oder in "managed C++" zu brechen?
hab ich doch angegeben, c++. das ist ein string den ich von einer textBox->text; zurückbekomme.
Konvertieren zwischen verschiedenen Zeichenfolgentypen : http://msdn2.microsoft.com/de-de/library/ms235631.aspx
Meintest du es ungefähr so? CString data; const char* data_char = (LPCTSTR) data;
Okay ich habs gefunden. Werde es dann nacher mal ausprobieren. // convert_string_to_wchar.cpp // compile with: /clr #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); }
Wenn es tatsächlich ein CString ist, dann ja. Das kann man so machen. Aber soviel ich weiss, hat String^ irgendwas mit managed C++ zu tun. Da hab ich auch noch keine Ahnung von (und will ich auch nicht).
String^ ist KEIN C++-Datentyp. "Managed C++" ist eine von Microsoft verbrochene Perversion, um C++ und das .Net-Geraffel miteinander zu verwurschteln. Mit C++ hat das nur noch den Namen gemein.
String^ ist eine Referenz auf einen String in C++/CLI (neu seit VS 2005). Würde mal im Microsoft Forum danach fragen.
> ... Perversion ... Mit C++ hat das nur noch den Namen gemein.
Du sagst es. Deshalb will ich auch nichts damit zu tun haben.
array<Byte>^ test; // Managed Equivalent zu unsigned char []
test = System::Text::Encoding::ASCII->GetBytes(str);
> ... Perversion ... Mit C++ hat das nur noch den Namen gemein.
um mal den alten Gag rauszukramen
thesource.ofallevil.com
theroot.ofallevil.com (Verisign)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.