1

如何将 xloper 或 xloper12 转换为矢量?

这是一个直截了当的问题,我看不出还有什么其他细节可以提供。

4

1 回答 1

2

这有点痛苦,但这里有一些框架代码可以帮助您入门。

假设您有一个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);
    }
}

我用过autodecltype所以这适用于 XLOPER 和 XLOPER12。行索引类型不同。

于 2014-09-17T14:01:06.640 回答