www.mikrocontroller.net

Forum: PC-Programmierung String^ nach char*


Autor: Joern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Joern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hab ich doch angegeben, c++.

das ist ein string den ich von einer

textBox->text;

zurückbekomme.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guck Dir mal die Member von CString an.

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Konvertieren zwischen verschiedenen Zeichenfolgentypen :

http://msdn2.microsoft.com/de-de/library/ms235631.aspx

Autor: Joern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meintest du es ungefähr so?


CString data;
const char* data_char = (LPCTSTR) data;

Autor: Joern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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);
}

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
String^ ist eine Referenz auf einen String in C++/CLI (neu seit VS
2005). Würde mal im Microsoft Forum danach fragen.

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... Perversion ... Mit C++ hat das nur noch den Namen gemein.

Du sagst es. Deshalb will ich auch nichts damit zu tun haben.

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.