我必須使用一個十六進制數組,因爲我正在執行一個程序來與視頻服務器控制器進行通信,而他只是以十六進制理解消息。我可以將視頻控制器與我的服務器連接,但是當我嘗試使用send()函數發送消息時,將包含我的信息的unsigned char數組以十六進制形式傳遞,它不起作用。這是我如何使用數組。我不知道這是否正確。如何在數組內存儲十六進制數? C++ MFC
void sendMessage()
{
int retorno;
CString TextRetorno;
unsigned char HEX_bufferMessage[12]; // declaration
// store info
HEX_bufferMessage[0] = 0xF0;
HEX_bufferMessage[1] = 0x15;
HEX_bufferMessage[2] = 0x31;
HEX_bufferMessage[3] = 0x02;
HEX_bufferMessage[4] = 0x03;
HEX_bufferMessage[5] = 0x00;
HEX_bufferMessage[6] = 0x00;
HEX_bufferMessage[7] = 0xD1;
HEX_bufferMessage[8] = 0xD1;
HEX_bufferMessage[9] = 0x00;
HEX_bufferMessage[10] = 0x00;
HEX_bufferMessage[11] = 0xF7;
retorno = send(sckSloMo, (const char*) HEX_bufferMessage, sizeof(HEX_bufferMessage), 0);
TextRetorno.Format("%d", retorno);
AfxMessageBox(TextRetorno); // value = 12
if (retorno == SOCKET_ERROR)
{
AfxMessageBox("Error Send!! =[ ");
return;
}
return;
}
不是不重要的,但你需要回去學習一些基本知識。十六進制是一種「顯示」數字值的方式。這不是一種變量。我認爲一旦你理解了基本知識,你的問題就會變得更加清晰。祝你好運。 – Jay
也許你只需要這個:'send(sckSloMo,「F0153102030000D1D10000F7」,11,...'。這取決於你的意思是「視頻服務器控制器只是以十六進制理解消息」 –
Michael,我說因爲開發者手冊,我收到說,這些消息是十六進制的,即使是那些我的服務器從控制器收到的。 有了這條消息,我試圖在視頻控制器屏幕上畫一個矩形。你說過,傳遞函數send()函數將一個字符串與消息結合起來,但它不會畫出矩形。 – user2928858