XLL: конвертировать xloper в вектор & lt; double & gt;

Как я могу преобразовать xloper или xloper12 в вектор?

Это простой вопрос, я не вижу, какие еще подробности дать.

0

Решение

Это немного больно, но вот код скелета, с которого можно начать.

Предположим, у вас есть LPXLOPER12 lpxloper (или старше LPXLOPER тип). Вы получаете тип, используя

DWORD type = lpxloper->xltype & ~(xlbitXLFree|xlbitDLLFree);

Единственный нескалярный тип xltypeMulti, Если у вас есть такой тип, то вы можете использовать

auto rows = lpxloper->val.array.rows;
auto columns = lpxloper->val.array.columns;

настроить свой std::vector и используйте следующее для извлечения элементов:

for (decltype(rows) i = 0; i < rows; ++i){
for (decltype(columns) j = 0; j < columns; ++j){
/*element i, j is*/ = lpxloper->val.array.lparray + j + (i * columns);
}
}

Я использовал auto а также decltype так что это работает с XLOPER и XLOPER12. Типы индексов строк различаются.

1

Другие решения


По вопросам рекламы [email protected]