Присвоение вариантного массива диапазону ячеек в Excel

Рейтинг: 0Ответов: 0Опубликовано: 01.02.2015

Пытаюсь разобраться с вариантными массивами в c++.

Код:

VARIANT v;  
SAFEARRAYBOUND rgb[] = {10,0};  
v.vt = VT_ARRAY | VT_VARIANT;  
v.parray = SafeArrayCreate(VT_VARIANT,1,rgb);  
long *rgelems;   
SafeArrayAccessData(v.parray, (void**)&rgelems);  
for (int c = 0; c < 10; c++)
{rgelems[c] = c*100;}  
SafeArrayUnaccessData(v.parray);   
for (int c = 0; c < 10; c++)  
{std::cout << rgelems[c] << " ";}    
Excel::RangePtr pRange = OldSheet->Range["A1"]["A10"];  
pRange->Value2 = rgelems;

Не пойму ворнинг компилятора

warning C4800: long *: принудительно задано логическое значение "true" или "false"

(предупреждение о производительности) - ссылается на строку

Range->Value2 = rgelems;

И в Excel в указанный диапазон пишется значение "ИСТИНА", хотя при выводе в консоль выводятся нормальные значения. В чем проблема? Спасибо за ответы.

Ответы

Ответов пока нет.