c++ - CFileDialog (MFC) 异常

标签 c++ exception mfc

我的程序中有以下几行 C++ 代码

CFileDialog dialog(true);
 CString strFileName=L"";
 INT_PTR nResult = dialog.DoModal();
 if(nResult == IDOK)
  // Exception spotted here
  // Debug information gives me --> dialog = {CFileDialog hWnd=0x00000000}
  // What's the heck?
  strFileName=dialog.GetFolderPath();

问题是:当我在运行Windows XP 的PC 上执行程序时,总是出现一个丑陋的异常,我不知道为什么会发生。但是当我将它复制到另一台运行 Windows 7 的 PC 时一切正常。

我很绝望。你能告诉我为什么吗?

最佳答案

你需要打电话

DWORD WINAPI CommDlgExtendedError(void);

在 CFileDialog 的实例化之后检查它是否被实例化,如果不是为什么不。

编辑:

在对话框关闭后,您无法调用 GetFolderPath,这是在 DoModal() 返回时。看这个MSDN page在关于如何传递缓冲区来保存文件名的注释下。

关于c++ - CFileDialog (MFC) 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4745184/

相关文章:

c++ - 将 inotify 与 MinGW 结合使用

c++ - 使用 GetFileVersionInfoSize() 时出现错误 LNK2019

c++ - MFC:创建无模式对话框而不显示

java - 在这种情况下我应该如何处理异常

c++ - CRichEditCtrl 和 Unicode BOM

c++ - 如何在没有资源编译器的情况下将自定义窗口的资源添加到可执行文件中?

c++ - Win32 API : GetLastError() with FormatMessage() prints a junk

python - for 语句中的动态数组

java - 空点异常,不知道为什么?

c# - 用户输入的值验证和错误捕获级别