通话后,文件写入工作不打开文件对话框 [英] file writing not working after call to open file dialog
本文介绍了通话后,文件写入工作不打开文件对话框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
调用下面的函数,我不能写我想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屋!
查看全文