C# C++/缺少WinRT UWP文件OpenPicker

C# C++/缺少WinRT UWP文件OpenPicker,c#,c++,uwp,c++-winrt,C#,C++,Uwp,C++ Winrt,我试图向UWP C++/WinRT应用程序添加一个文件选择按钮,但似乎无法访问与C#示例相同名称空间的构造函数。我在下面的图片中链接了特定的Visual Studio错误: 如果我不顾此错误尝试构建它,则会得到以下输出: 1>c:\users\albertdayn\source\repos\siemensirscannersoftware\scanview\mainpage.cpp(39): error C2039: 'FileOpenPicker': is not a member o

我试图向UWP C++/WinRT应用程序添加一个文件选择按钮,但似乎无法访问与C#示例相同名称空间的构造函数。我在下面的图片中链接了特定的Visual Studio错误:

如果我不顾此错误尝试构建它,则会得到以下输出:

1>c:\users\albertdayn\source\repos\siemensirscannersoftware\scanview\mainpage.cpp(39): error C2039: 'FileOpenPicker': is not a member of 'winrt::Windows::Storage::Pickers'
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\cppwinrt\winrt\impl\windows.storage.pickers.provider.2.h(18): note: see declaration of 'winrt::Windows::Storage::Pickers'
1>c:\users\albertdayn\source\repos\siemensirscannersoftware\scanview\mainpage.cpp(39): error C2065: 'FileOpenPicker': undeclared identifier
为什么我不能进入课堂?如果我制作了一个C#应用程序,我可以很好地运行上面链接中给出的示例。

在C#和C++/CX中,第一次使用时会自动找到引用并将其拉入模块中

对于C++/WinRT,您需要显式地包含正确的头。在这种情况下:

#include <winrt/Windows.Storage.Pickers.h>
#包括

在使用VS 201(15.9更新)的C++/WinRT UWP项目中使用
FileOpenPicker
我没有问题。你没有显示你的
#include
语句,那么你是否包含了正确的标题?@ChuckWalbourn哇,我真傻,非常感谢。我没有意识到其他C++/WinRT UWP类来自“pch.h”。在包含
#include
之后,它在C++/WinRT中工作得非常好,您需要显式地包含正确的头。->这对于所有的C++/WinRT都是如此,因为它是一个只包含标题的库,依赖于包含一对链接到的库,例如对于UWP内容的
WindowsApp.lib
,或者对于C++/WinRT使用的
onecoreuap.lib
,不需要在UWP应用程序的严格限制下工作,比如把注册表或文件系统作为一个整体弄乱。