тип VARIANT и перекодировка
От: Liss  
Дата: 14.08.01 00:40
Оценка:
Есть сервер выполненый в виде dll который считывает данные с таблицы mdb
посредством ADO через Jet. Метод лежащий на сервере принимает параметр idx
(индекс поля) возвращает значение этого поля с типом variant

STDMETHODIMP get_Field(VARIANT idx, VARIANT * newVal)
{
USES_CONVERSION;
Fields* fields = 0;
HRESULT hr = m_recordset->get_Fields(&fields);
Field* field = 0;
hr = fields->get_Item(idx, &field);
hr = field->get_Value(newVal);
fields->Release();
field->Release();
return hr;
}
клиент вызывает этот метод

MessageBox(NULL, (BSTR)(_bstr_t) p->Field[1L], "Lala", MB_OK|MB_SETFOREGROUND);

Если поле содержит русские буквы у меня на клиенте возвращается строка в
кодировке ANSII :( а надо в OEM.

Мож был у кого такой трабл??

Не подскажите как можно это дело исправить без использования функций
перекодировки? И почему он результат возвращает в виде ANSII?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.