【发布时间】:2015-01-18 21:32:41
【问题描述】:
我遵循CFileDialog 的定义,但 VS2013 仍然告诉我没有可用于我传入的参数的构造函数。
我的代码:
CFile theFile;
char strFilter[] = { "TXT Files (*.txt)|*.txt|All Files (*.*)|*.*||" };
CFileDialog fDlg = CFileDialog(TRUE, ".txt", NULL, 0, strFilter);
产生的错误:
1 IntelliSense:没有构造函数“CFileDialog::CFileDialog”的实例与参数列表匹配 参数类型为: (int, const char [5], int, int, char [46]) c:\Users\Jonathan\Documents\Visual Studio 2013\Projects\SDI\SDI\MainFrm.cpp 131 21 SDI
还有CFileDialog构造函数供参考:
explicit CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL,
LPCTSTR lpszFileName = NULL,
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
LPCTSTR lpszFilter = NULL,
CWnd* pParentWnd = NULL,
DWORD dwSize = 0,
BOOL bVistaStyle = TRUE);
有什么问题?
【问题讨论】:
-
这是 UNICODE 版本还是 MBCS?
-
@PaulMcKenzie 我不知道如何回答这个问题。这是一个空白的 MFC 程序,这是我在文件中输入的第一段代码->打开事件处理程序
-
@user134788 在您的字符串文字前加上
L并重试。您必须将strFilter的类型更改为WCHAR。如果您同意使用 T 宏的想法,请将您的文字用_T()括起来,并使用TCHAR作为strFilter[]的类型
标签: c++ mfc cfiledialog