积极答复者
有关Ibuffer^ 转 byte* 或者void*的求助(C++)

问题
-
请问Ibuffer^ 转 byte* 或者void*该怎么转呢?
auto openPicker = ref new FileOpenPicker(); openPicker->ViewMode = PickerViewMode::List; openPicker->SuggestedStartLocation = PickerLocationId::DocumentsLibrary; openPicker->FileTypeFilter->Append(".pdf"); task<StorageFile^>(openPicker->PickSingleFileAsync()).then([this](StorageFile^ openedFile) { if (openedFile != nullptr) { task<IBuffer^>(FileIO::ReadBufferAsync(openedFile)).then([this](IBuffer^ buffer) { }); } });
我只是想实现win32的fopen功能, FILE* m_iFileRead = fopen(lpszPathName, "rb");
希望高手们指点一二,谢谢!
- 已编辑 frglig 2012年4月6日 8:57
答案
-
通过摸索得到下面的方法,不知道正不正确。现分享出来,如有错误,欢迎指正!
DataReader^ dataReader = DataReader::FromBuffer(buffer); Array<unsigned char,1>^ myarray =ref new Array<unsigned char,1>(buffer->Length); dataReader->ReadBytes(myarray); unsigned char * ch = myarray->begin(); unsigned char * ch2 = myarray->Data;
- 已标记为答案 Jie BaoModerator 2012年4月10日 9:03
全部回复
-
通过摸索得到下面的方法,不知道正不正确。现分享出来,如有错误,欢迎指正!
DataReader^ dataReader = DataReader::FromBuffer(buffer); Array<unsigned char,1>^ myarray =ref new Array<unsigned char,1>(buffer->Length); dataReader->ReadBytes(myarray); unsigned char * ch = myarray->begin(); unsigned char * ch2 = myarray->Data;
- 已标记为答案 Jie BaoModerator 2012年4月10日 9:03
-
没错,我们可以通过 DataReader/DataWriter 来在 IBuffer 和 byte*, char[], string间转换。 官方的File Access sample 里面就用到了这个方式去将string转成IBuffer: File access sample
Bob Bao [MSFT]
MSDN Community Support | Feedback to us