cVector3d newPosition = tool->getDeviceGlobalPos();
char sendBuf[sizeof(double)*3 + 1];
int sendBufLen = sizeof(double)*3 + 1;
memset( (void *)&sendBuf, '\0', sizeof(sendBuf));
memcpy(&sendBuf, &newPosition[0], sendBufLen -1);
где cpi - указатель на объект интерфейса com.Multicast - это метод ac #, который принимает строковые аргументы.Когда я печатаю message.length, полученное Multicast, то есть sendBuf, он просто говорит 2 вместо 24.
ссылка для cvector3d http://www.chai3d.org/doc/structc_vector3d.html
что не так с cpi->Multicast(sendBuf);
?
- edit-- Мне нужно конвертировать sendBuf в _bstr_t. Я думаю
Я конвертировал в _bstr_t, но длина сообщения все равно показывает 2 вместо 24?
Я использовал
_bstr_t bstrt(sendBuf);
Я полагаю, что bstr поврежден, так как при отладке я вижу BAD PTR
в bstr->m_data->m_str
---- edit ---- Когда я конвертирую "123456789012378901234"
char sendBuf[sizeof(double)*3 + 1];
memcpy(&sendBuf, "123456789012345678901234", sendBufLen -1);
_bstr_t bstrt(sendBuf);
bstrt имеет" 123456789012378901234 "
, но когда у меня есть странные символы в sendBuf, например, для.sendBuf [14] = "16 'ð' "
, которая нужна моей программе, bstr не получает эти значения из sendBuf
почему?