我有一个 Win32 程序,我想在其中添加一些 winRT 调用。我想在没有 GUI 界面的情况下打开文件。
我使用 StorageFile 类中的异步文件打开调用,因为下一个调用需要 IStorageFile 接口。
#include <roapi.h>
#include <winrt/Windows.Storage.h>
#include <winrt/Windows.Foundation.h>
void openFile()
{
using namespace winrt;
using namespace winrt::Windows::Foundation;
using namespace winrt::Windows::Storage;
HRESULT rtn = RoInitialize(RO_INIT_MULTITHREADED);
winrt::hstring path{ L"C:\\Users...\\mytextfile.txt"};
//wait for open the file
auto file = co_await StorageFile::GetFileFromPathAsync(path);
//IStorageFile interface needed
}
int main()
{
openFile();
return 0;
}
目前,编译器抱怨 co_await 表达式需要一个合适的“await_ready”函数,但没有找到。
我不确定这是否是由于缺少标头包含或“co_await”不能在 win32 应用程序中使用。
编辑:我的 Visual Studio 项目设置是: - 使用 c++17,将 cppwinrt.exe 添加到我的包含目录,链接到 windowsapp.lib 并使用 windows sdk 版本 10.0.17134.0。