BYTE const in const char* konvertieren
-
Hi Leute,
ich habe eine Funktion in der ich ein "BYTE const" in "const char*" konvertieren muss. Hier die Funktion:
void CFWLoaderDlg::SerOut(BYTE const byData)
{
const char* data;
data = byData;??????
m_serial.SendData(data,1);
}Hab ich schon mit static_cast versucht, fünzt aber nicht.
Könnt Ihr mit helfen?
Danke im voraus.
Grüsse
xthing
-
xthing schrieb:
Hab ich schon mit static_cast versucht, fünzt aber nicht.
Wie sah denn dieser cast aus, und was kam für ne Fehlermeldung?
-
BYTE ist ein (unsigned) char, char* ist ein Zeiger - also mußt du die Adresse deines Wertes übergeben:
void CFWLoaderDlg::SerOut(BYTE const byData) { const char* data; data = &byData;//notfalls static_cast<char*>(&byData) //wichtig ist hier das & vor der Variablen m_serial.SendData(data,1); }
-
CStoll schrieb:
BYTE ist ein (unsigned) char....
... womit auch das const recht überflüssig ist, oder ?

Gruß,
Simon2.
-
@CStoll, danke, aber jetzt kommen bei beiden Versionen die Fehlermeldungen:
error C2440: 'static_cast': 'const BYTE *__w64 ' kann nicht in 'char *' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
Was ist falsch?
Danke noch maö.
Grüsse
xthing
-
Du versuchst das const ohne const_cast wegzucasten. Imho:
const char* data = reinterpret_cast<const char*>(&byData);
-
Danke jetzt klappt es.
Grüsse
xthing