- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在遵循 CFileDialog
的定义,但 VS2013 仍然告诉我没有可用于我传入的参数的构造函数。
我的代码:
CFile theFile;
char strFilter[] = { "TXT Files (*.txt)|*.txt|All Files (*.*)|*.*||" };
CFileDialog fDlg = CFileDialog(TRUE, ".txt", NULL, 0, strFilter);
产生的错误:
1 IntelliSense: no instance of constructor "CFileDialog::CFileDialog" matches the argument list argument types are: (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);
有什么问题?
最佳答案
问题似乎是您使用的字符串类型不正确。
快速解决方案是使用 TCHAR
而不是 char
。更好的解决方案是只使用宽字符串并确保构建是 Unicode。
在 Visual Studio 中创建项目时,使用的默认字符集类型是 Unicode,不是 MBCS,也不是“未设置”。这意味着采用字符数组和指针的 Windows API 和 MFC 函数将使用宽字符。因此,在需要宽字符串的 Windows API 函数上使用 char
、char *
、const char*
将无法编译。
即使您对 Unicode 或 MBCS 一无所知,您的代码也有错误的迹象是,您调用的函数采用 LPCTSTR
类型——也就是说,不是 一个 const char *
,它就是它的本质,即一个指向 TCHAR
的常量指针。如果您坚持知道要使用指定的类型,那么您就可以开始了。
所以教训是,如果一个函数想要一个类型,提供一个该类型的变量或表达式,而不是你认为该类型等同的东西。
关于c++ - CFileDialog 实例化的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27049481/
当我尝试实例化 CFileDialog 对象时,它会显示文件夹和文件。如何创建一个单独浏览文件夹的CFileDialog? 最佳答案 这真的很简单。 使用CFolderPickerDialog它派生自
我正在尝试制作一个“另存为”对话框,其中包含一个事件,该事件将根据我们从过滤器组合框中选择的文件类型更改默认路径。问题是,我看到的所有示例都在结果 IDOK 或 IDCANCEL 上执行代码,而我需要
我目前正在维护一个旧的 MFC 应用程序,但在打开文件对话框时遇到问题。该程序有多个不同的部分,用户可以选择要加载的文件,例如声音、视频和其他程序特定格式。 打开对话框应始终在“特定”文件夹中打开,具
CFileDialog 打开后我有奇怪的行为。提供的文件名看起来已被截断,因此只有最后 n 个字符可见: image http://ves.fijmovi.com/cpp/CFileDialog_1.
我正在遵循 CFileDialog 的定义,但 VS2013 仍然告诉我没有可用于我传入的参数的构造函数。 我的代码: CFile theFile; char strFilter[] = { "TXT
我正在使用 CFileDialog,我设置了如下所示的初始路径,如代码所示。它不工作。如果我犯了错误,请纠正我。 CFileDialog* filedlg = new CFileDialog(T
我在基于对话框的 MFC 应用程序中添加了一个“打开文件”对话框。现在,在通过按下“打开”或“取消”按钮关闭打开的文件对话框后整整一分钟(!),我的应用程序崩溃了。当它崩溃时,输出中会发生以下情况:
在 VC++ 6.0, MFC 中我想选择多个文件 CFileDialog opendialog(true); // opens the dialog for open; opendialog.m_o
如果有一种方法可以自定义 CFileDialog 错误消息,那就太好了。 例如,在文件名编辑框中输入无效的驱动器会导致如下错误消息。 我想在这里显示一个不同的错误。是否有可能没有子类化 CFileDi
如何在 CFileDialog 上添加一个简单的复选框? MFC 似乎有一个函数 CFileDialog::AddCheckButton,不幸的是在 WTL 中没有实现.. 这些缺失的功能(我发现这些
大家好,我在 MFC 中维护这段代码 char szFilters[]= "Text Files(*.txt)|*.txt|Register File Definition Files(*.rgf)
当我要打开的文件正在/正在被其他进程或应用程序使用或打开时,我需要捕获异常。我正在使用 MFC 的 CFileDialog 的 DoModal 打开选定文件的列表。但是,当我在“打开文件”对话框中选择
我创建了一个 MFC 程序,其中包含用于保存文件的菜单选项。当我单击它时,它会显示 CFileDialog,我可以选择要保存文件的位置。当我在对话框中单击保存时,它会关闭对话框,但之后它什么也不做。而
我有一个 MFC C++ 应用程序,它有一个 CFileDialog。我调用它的 DoModal 函数来打开一个文件浏览窗口。我设置了 lpstrInitialDir,告诉它第一次打开对话框的位置
使用 CFileDialog 作为文件打开,我需要允许用户仅选择显示在对话框列表区域中的文件,例如通过单击它。我们不希望用户能够在文件名控件中键入名称。 OPENFILENAME (OFN) 结构有几
我需要在 MFC 中构建一个控件来显示某些文件的预览。这些文件是 3D 模型,所以我需要使用 OpenGL 来绘制它们并让用户与之交互(平移、缩放等)。 我想扩展 CFileDialog 类,因为再次
我正在使用以下代码通过 UI 检索多个文件选择: CFileDialog fd(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | O
我的程序中有以下几行 C++ 代码 CFileDialog dialog(true); CString strFileName=L""; INT_PTR nResult = dialog.DoMo
每当我在调试器下运行我的应用程序时,我在使用 CFileDialog 浏览要打开的文件时遇到以下异常 First-chance exception at 0x769db9bc in MyApp.exe
我正在使用从 CFileDialog 扩展而来的自定义文件对话框。问题是,OninitDialog() 不会在 DoModal() 之前被调用。 我在 OninitDialog() 中自定义了 CFi
我是一名优秀的程序员,十分优秀!