CString über Schnittstelle

Gast #2359570
Lesenswert?

Hallo PC-Programmierer,

ich sitze gerade vor dem VS10 und mache ein Projekt mit den MFC´s.
Jetzt habe ich in einem anderen Forum gelesen, dass ich einen CString so 
umwandeln kann:

  LPCSTR sending_data = (LPCSTR)(LPCTSTR)cstrCommand;

Den LPCSTR sending_data schicke ich an eine Funktion, welchen den über 
die Serielle Schnittstelle ausgibt.
Doch beim Debugging merke ich, dass aus einem Wort, bsp.: "Hallo" nur 
ein "H" übrig bleibt.

Ich sehe im Debugging bei der Variable noch "Bad Ptr" Was hat das zu 
bedeuten?

Ich hoffe jemand weiß mir Rat, danke schonmal!

Dennis


EDIT: Ich bin derzeit der Meinung es geht einfach nicht, ich hab jetzt 
schon X Möglichkeiten ausprobiert! Irgendwie muss es doch aber möglich 
sein oder? Ich hab einen x-beliebigen Text als CString und möchte den 
einfach über die Serielle Schnittstelle senden. Die verlangt nunmal 
einen LPCSTR...
Gast #2359647
Lesenswert?

1
/// UMWANDLUNG
2
    int count = cstrCommand.GetLength();
3
    char* c = new char[count + 1];
4
    for(int j = 0; j < count; j++)
5
  {
6
       c[j] = static_cast<char> (* cstrCommand.Mid(j, 1));
7
    }
8
    c[count] = '\0';
9
  LPCSTR sending_data = LPCSTR(c);
10
//// UMWANDLUNG ENDE

Mit diesem Code ist es möglich einen UNICODE Strng zu einem normalen 
ASCII String zu formen!
Hab den soeben im Internet gefunden!

DANKE Karl Heinz!
Gast #2359732
Lesenswert?

Naja okay ihr habt mögt recht haben, dennoch habe ich mit der klasse 
cstring eine tolle klasse für strings, welche mir auch einige funktionen 
bietet auf die ich ungern in meinem programm verzichten möchte.
Und die umwandlung dauert jetzta auch nicht so lange.
Gast #2359996
Lesenswert?

Hmm okay, das muss ich dann beim anlegen des projekts einstellen oder 
kann ich das nachträglich auch noch machen?
Jedenfalls geht die funktion jetzt so. Ich schau nacher mal ob es da 
einstellmoglichkeiten gibt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren