有人知道我做错什么了吗。
// STORAGE FILE
StorageFile^ saveFile;
// FILE PICKER, FOR SELECTING A SAVE FILE
FileOpenPicker^ filePicker = ref new FileOpenPicker;
// ARRAY OF FILE TYPES
Array<String^>^ fileTypes = ref new Array<String^>(1);
fileTypes->Data[0] = ".txt";
filePicker->ViewMode = PickerViewMode::Thumbnail;
filePicker->SuggestedStartLocation = PickerLocationId::Desktop;
filePicker->FileTypeFilter->ReplaceAll(fileTypes);
// THIS SHOULD HOPEFULLY LET US PICK A FILE
saveFile = filePicker->PickSingleFileAsync();具体而言,最后一行:
saveFile = filePicker->PickSingleFileAsync();我得到以下错误。
错误C2440:'=':无法从'Windows::Foundation::IAsyncOperation ^‘转换为'Windows::Storage::StorageFile ^’
发布于 2017-07-25 06:28:05
错误C2440:'=':无法从'Windows::Foundation::IAsyncOperation ^‘转换为'Windows::Storage::StorageFile ^’
PickSingleFileAsync是异步方法,返回类型是Windows::Foundation::IAsyncOperation,不能转换为StorageFile类型。正如Hans所说,您可以使用create_task()等待这个异步操作。
create_task(folderPicker->PickSingleFolderAsync()).then([this](StorageFolder^ folder)
{
if (folder)
{
//do some stuff
}
else
{
//do some stuff
}
});有关更多信息,请参考Asynchronous programming in C++。
https://stackoverflow.com/questions/45282455
复制相似问题