通话后,文件写入工作不打开文件对话框 [英] file writing not working after call to open file dialog

查看:92
本文介绍了通话后,文件写入工作不打开文件对话框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

调用下面的函数,我不能写我想C ++ fstream的任何文件和C的在fopen什么是错的,请帮助在此先感谢
我使用$ C $个cblocks MinGW的Windows 7的

 字符串的OpenFileDialog(HWND HWND,字符*的FileFilter,字符* defaultExtension)
{
    字符串文件名=;
    OPENFILENAME OFN;
    焦炭szFileName [MAX_PATH] =;
    ZeroMemory(安培; OFN,sizeof的(OFN));    ofn.lStructSize = sizeof的(OPENFILENAME);
    ofn.hwndOwner = HWND;
    ofn.lpstrFilter =的FileFilter;
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = MAX_PATH;
    ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    ofn.lpstrDefExt = defaultExtension;    如果(GetOpenFileName(安培; OFN)){
        fileName.assign(szFileName);
    }    ZeroMemory(安培; OFN,sizeof的(OFN));
    返回文件名;
}


解决方案

如果您在对话框中改变文件夹,将改变当前文件夹的过程 - 尝试添加​​ OFN_NOCHANGEDIR 标记。

after call to following function i cant write to any files i tried c++ fstream and c's fopen what's wrong please help thanks in advance i am using codeblocks mingw windows 7

string openFileDialog(HWND hwnd,char *fileFilter,char *defaultExtension)
{
    string fileName = "";
    OPENFILENAME ofn;
    char szFileName[MAX_PATH] = "";
    ZeroMemory(&ofn, sizeof(ofn));

    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = hwnd;
    ofn.lpstrFilter = fileFilter;
    ofn.lpstrFile = szFileName;
    ofn.nMaxFile = MAX_PATH;
    ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
    ofn.lpstrDefExt = defaultExtension;

    if(GetOpenFileName(&ofn)) {
        fileName.assign(szFileName);
    }

    ZeroMemory(&ofn, sizeof(ofn));
    return fileName;
}

解决方案

If you change folder in the dialog it will change the current folder for your process - try adding the OFN_NOCHANGEDIR flag.

这篇关于通话后,文件写入工作不打开文件对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆