Здравствуйте, 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 сам позаботится о выделении памяти и ее освобождении.