我正在Linux上使用一个专有库,它在回调函数中使用SAFEARRAY
类型:
HRESULT Write(SAFEARRAY *Data)
SAFEARRAY
在头文件中定义为typedef void SAFEARRAY
。
我必须定义一个回调函数来获取数据(例如,作为*unsigned char
)和其长度(例如,作为int
或size_t
),并将数据写入某个位置。
类似于:
HRESULT MyWrite(SAFEARRAY *Data) {
unsigned char *data = SafeArrayGetData(Data);
size_t length = SafeArrayGetLength(Data);
write_data_somewhere(data, length);
}
然后使用该库:
ProprietaryLib::ExportThing(thing, MyWrite);
所以我的问题是:在Linux上,我没有oaidl.h或oleauto.h头文件,如何获取数据及其长度。