feo_kos (28.12.2011 20:17, просмотров: 80) ответил T.Дocтoeвcкий на На char в 16 бит похоже. А где строчка которой отправляешь?
Вот кусок функции, которой отправляю. Сделал в MFC. Все эти циклы, потому что в окне я набираюсь как бы hex, а отправляется,без циклов, символы по отдельности. char NumBuf[10]={0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0};
char WordBuf[6]={0xF,0xE,0xD,0xC,0xB,0xA};
wchar_t buf[256];
int f=0;
NumOfBytes=sizeof(char)*(m_SendInfo.GetWindowTextLength());
m_SendInfo.GetWindowText((LPTSTR)buf,NumOfBytes+1);
for(unsigned int BytesToWrite=0; BytesToWrite<NumOfBytes;BytesToWrite++)//только большие буквы
{
if(BytesToWrite%2==0)
{
if(buf[BytesToWrite]<0x40) buf[BytesToWrite]=(NumBuf[0x39-buf[BytesToWrite]]<<4)&0xF0;
else buf[BytesToWrite]=(WordBuf[0x46-buf[BytesToWrite]]<<4)&0xF0;
}
else
{
if(buf[BytesToWrite]<0x40) buf[BytesToWrite]=NumBuf[0x39-buf[BytesToWrite]];
else buf[BytesToWrite]=WordBuf[0x46-buf[BytesToWrite]];
f++; buf[BytesToWrite-f]=buf[BytesToWrite-1]|buf[BytesToWrite];
}
}
WriteFile(FilePath,buf,NumOfBytes/2,&i,NULL);
}
Всё это дело работает корректно в отладчике.