maxa Гость
|
Добавлено: Пт Июн 25 2004 13:27 Заголовок сообщения: Как конвертнуть BYTE * в BSTR или VARIANT |
|
|
Господа, подскажите как мне конвертнуть 'BYTE *' в BSTR или VARIANT. У меня есть компонента которая читает данные из порта,
ясное дело там может прийти строка любой длинны. Необходимо эти данные данные передать приложению на VFP.
Метод в VFP которому передаются параметры описан так:
PROCEDURE EVReciveData(cdata as String) as Variant
RETURN cdata
но могу и поменять чтобы принимал variant
В VС вижу что мне нужно передавать:
m_Tmyclass->EVReciveData(_bstr_t сdata);
в случае если будет variant приниматься клиентом
будет _variant_t
m_Tmyclass->EVReciveData(_variant_t &сdata);
Буфер порта , объявлен как :
BYTE *InStr = (BYTE *)malloc(inQ);
inQ - реальное количество байт котрое мне пришло в порт, что вообще-то не важно, важно-то что оно не константа. Причем поток из порта может содержать байты от 0x00 до 0x1F.
Как мне преобразовать полученные данные из порта к виду необходимомоу для передачи ?
Счас делаю так:
CComBSTR _bstr_data;
_bstr_data.AppendBytes(char* InStr,inQ);
m_Tmyclass->EVReciveData(_bstr_t(_bstr_data));
Приложение получает совсем не то что должно, строку мусора.
Как мне к примеру правильно преобразовать к примеру
{0x00,0x00,0x00,0xA1,0x00...} в BSTR или засунуть ее в VARIANT или
как нибудь через SAFEARRAY замутить. Буду благодерен за любые советы! Помогите пожалуйста.
Помогите пожалуйста.
P/S : Пишу на VC++ |
|