我正在使用全新的VS2015全新安装。我正在为另一个平台的一些C ++代码创建Windows包装器。我正在使用相对较典型的任务,即使用GetOpenFile
打开文件选择器对话框。这需要使用OPENFILENAME
结构。我尝试遵循MSDN示例here。
由于某些原因,OPENFILENAME
显示:
错误:标识符“ OPENFILENAME”未定义。
如下所示,我包含了<Windows.h>
和<Commdlg.h>
。我在这里错过了什么真正简单的事情?我感觉这是一个名称空间问题,但是我似乎无法弄清楚正确的名称空间是什么。
#include "pch.h"
#include "MainPage.xaml.h"
#include <Windows.h>
#include <Commdlg.h>
using namespace App1;
using namespace Platform;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Controls::Primitives;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Media;
using namespace Windows::UI::Xaml::Navigation;
MainPage::MainPage()
{
InitializeComponent();
}
void App1::MainPage::button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
OPENFILENAME ofn; // <-- Syntax/IDE checker highlights as undefined.
}
最佳答案
正如汉斯在评论中指出的那样,我无意中将其创建为Windows Store项目,这使得传统的桌面API无法访问。
正确的方法是使用Store API函数,或者对于更传统的应用程序,创建适当类型的新项目。