Re: Преобразование _variant_t к char и int
От: _Dreamer Россия  
Дата: 09.10.08 06:18
Оценка:
Здравствуйте, unfer, Вы писали:

U>Необходимо данные из RecordSet'a записать в этот массив, но пока не получается.

U>Делаю так
U>
U>(TCHAR*)(_bstr_t)RecPtr->GetFields()->GetItem(L"id")->Value;
U>

U> — компилятор ругается, вот так
U>
U>*(TCHAR*)(_bstr_t)RecPtr->GetFields()->GetItem(L"id")->Value;
U>

U> — выводит непонятные значения.

U>Может кто-нибудь в курсе, как нужно делать правильно? Направьте новичка на путь истинный =)


как именно ругается компилятор?
у _variant_t тьма перегруженных операторов, можно вот так делать —
_variant_t v( "hello" );
_bstr_t str = v;  // "hello"
const char * c_str = (const char*)str; // "hello"
const wchar_t * wc_str = (const wchar_t*)str; // "hello"

_variant_t int_va(0);
int i = (int)int_var;
char c = (char)int_var;
// ну и т.д.


опять же, с массивом — стоит взять std::vector<>, примерно так —
#include <vector>

typedef std::vector< RecStr > records_type;

...
records_type records;

while( ... )
{
  RecStr data;
  // заполняем структуру data

  records.push_back( data );
}


vector сам позаботится о выделении памяти и ее освобождении.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.