這肯定是VS2012的bug了:
當在metro開發中使用如下lambda表達式獲取本地媒體資源,而項目工程的manifest文件中的caps中並沒有勾選music libs、Pictures libs以及Video libs等幾個複選框時,VS光榮的,掛掉了。必現,crash!
FileStruct* f =new FileStruct();
try
{
volatile int status = 0;
task<StorageFile^>(StorageFile::GetFileFromPathAsync(ShowbizUtil::ANSI_2_Unicode(szFileFullPath))).then([=] (StorageFile^ file)
{
f->file = file;
return file->OpenAsync(FileAccessMode::Read);
}).then([=, &status] (Streams::IRandomAccessStream^ fileStream)//Streams::IRandomAccessStream^ stream)
{
status = 1;
try
{
f->stream = fileStream;
if(f->stream)
{
f->size = f->stream->Size;
}
}
catch (Exception^ e)
{
return;
}
}).wait();