只要代码中出现下面这一段代码就会编译报错
create_task(dataReader->LoadAsync(1024 * 1024)).then([dataReader](void)
{
Buffer^ buff;
WriteOnlyArray<unsigned char>^ arry;
dataReader->ReadBytes(arry);
unsigned char* p = arry->begin();
});
编译时产生以下报错:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2338 incorrect parameter type for the callable object in 'then'; consider _ExpectedParameterType or task<_ExpectedParameterType> (see below) CX-UWP C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\ppltasks.h 386
这段代码还在其他的create_task里面套着,但是我试过将他单独拿出来,编译报错结果一样,不清楚原因
//那一段的完整代码时这样
create_task(Windows::Storage::FileIO::ReadBufferAsync(OpenFile)).then([](Windows::Storage::Streams::IBuffer^ buffer)
{
auto reader = Windows::Storage::Streams::DataReader::FromBuffer(buffer);
//获取文件长度
String^ length = reader->ReadString(buffer->Length);
//打开文件流
create_task(OpenFile->OpenAsync(Windows::Storage::FileAccessMode::Read)).then([](Windows::Storage::Streams::IRandomAccessStream^ stream)
{
Windows::Storage::Streams::IInputStream^ inputStream = stream->GetInputStreamAt(0);
DataReader^ dataReader = ref new Windows::Storage::Streams::DataReader(inputStream);
create_task(dataReader->LoadAsync(1024 * 1024)).then([dataReader](void)
{
Buffer^ buff;
WriteOnlyArray<unsigned char>^ arry;
dataReader->ReadBytes(arry);
unsigned char* p = arry->begin();
});
});
});
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。