unsigned char
-
eine verschlüsslungsroutine braucht einen unsigned char.
aber die send() und revc() funktion arbeitet nur mit char
gibts keine funktion die den empfangenen char in einen unsigned char umwandelt
damit ich ihn entschlüsseln kann ?
-
was für send und recv? Ich kenn nur welche (die von Linux) die mit void* arbeiten ...
Ansonsten ist ein einfacher Cast angebracht. Leider hast du anscheinend andere send und recv Funktionen als alle anderen, so muß ich raten, was für Prototypen die haben. Vielleicht so:
/* Einzelzeichen senden */ unsigned char myUChar = 222; send((char)myUChar); /* oder vielleicht doch ein Array? */ unsigned char myUCharArray[4] = { 3, 5, 7, 222 }; send((char*)myUCharArray, 4 /* länge */);
Wenn's nicht hilft gib mal ein paar mehr präzisere Informationen ...
-
char und unsigned char lassen sich doch einfach hin- und her-casten...
-
revc() wird bei sockets verwendet.
also folgendes, ich empfange daten über einen socketchar buf;
rc=recv(connectedSocket,buf,256,0);
der buf ist verschlüsselt, und ich will ihn entschlüsseln.
jedoch verlangt meine entschlüsslungsroutine einen unsigned char, ich habe jetzt mal das versuchtunsigned char buf2[]=((unsigned char)buf1);
und wollte dann buf2 entschlüsseln, aber der vc6++ compiler sagt immer.--------------------Configuration: aes - Win32 Debug--------------------
Compiling...
aes.cpp
C:\Programme\Microsoft Visual Studio\MyProjects\aes\aes.cpp(14) : error C2440: 'initializing' : cannot convert from 'unsigned char' to 'unsigned char []'
There are no conversions to array types, although there are conversions to references or pointers to arrays
Error executing cl.exe.sorry ich weiß das die lösung wahrscheinlich so billig ist das, mir keiner deshalb antworten will, aber bitte sagt mir mal was sache is danke.
-
Hallo,
ein char kann doch nicht verschlüsselt sein, oder...
das eine ist ein einzelnes zeichen und das andere ein array,
ich glaub da mußt du dich entscheiden
-
Original erstellt von RPD:
ich glaub da mußt du dich entscheidenDas glaub ich auch
#define EMPFANG_BUFFER 256 char ein_zeichen; // kann nur ein EINZIGES Zeichen beinhalten z.B. 'A' char ein_array[EMPFANG_BUFFER]; // da haben nun 256 Zeichen platz rc=recv(connectedSocket,ein_array,EMPFANG_BUFFER-1,0); // Empfange maximal 255 Zeichen
das einzelne char kannst du sonst nicht brauchen...
... der Array solltest du ausserdem noch löschen (memset)unsigned char buf2[]= {1,2,0};// beinhaltet nun drei Zeichen und hat Grösse 3 char bufx[3]; // Hat auch die Grösse 3, ist aber uninitialisiert unsigned char *buf_zeiger = 0; // Zeigt nirgendwo hin buf_zeiger = (unsigned char*)bufx; // zeigt nun auf den bufx-Buffer
ich glaube du hast da doch ein kleines Durcheinander mit Pointern, Typen und
Casts...
-
char bufx[3]; // Hat auch die Grösse 3, ist aber uninitialisiert
unsigned char buf_zeiger = 0; // Zeigt nirgendwo hin
buf_zeiger = (unsigned char)bufx; // zeigt nun auf den bufx-Bufferdas ist das was ich gesucht habe einemilliondankeschöns an dich ;=)
merci