无法打印EditBox-MFC中的文件夹路径

无法打印EditBox-MFC中的文件夹路径,mfc,folderbrowserdialog,Mfc,Folderbrowserdialog,我正在使用以下函数..而不是CFolderDialog。。要获取文件夹路径…请检查下面的代码…当我尝试在编辑框中打印文件夹路径名称时,遇到运行时错误 空虚 CSelfExtractorUIDlg::OnBnClickedButton1() { CDialog-dlg HWND HWND=NULL;LPCTSTR szCurrent= (LPCTSTR)malloc(25*sizeof(TCHAR)); szCurrent=NULL;LPTSTR szPath= (LPTSTR)马洛克(25*si

我正在使用以下函数..而不是CFolderDialog。。要获取文件夹路径…请检查下面的代码…当我尝试在编辑框中打印文件夹路径名称时,遇到运行时错误

空虚 CSelfExtractorUIDlg::OnBnClickedButton1() {

CDialog-dlg

HWND HWND=NULL;LPCTSTR szCurrent= (LPCTSTR)malloc(25*sizeof(TCHAR)); szCurrent=NULL;LPTSTR szPath= (LPTSTR)马洛克(25*sizeof(TCHAR));布尔 检查= 浏览文件夹(hwnd、szCurrent、szPath); 如果(检查==TRUE){ dlg.SetDlgItemTextW(IDC_EDIT1,szPath); }

}

BOOL BrowseForFolder(HWND-HWND, LPCTSTR szCurrent,LPTSTR szPath){ BROWSEINFO bi={0};LPITEMIDLIST pidl;TCHAR szDisplay[256];BOOL 复述

//协同初始化()

bi.hwndOwner=hwnd; bi.pszDisplayName=szDisplay; bi.lpszTitle=文本(“请 选择一个文件夹。“);bi.ulFlags
=BIF_RETURNONLYFSDIRS | BIF_NEWDIALOGSTYLE;bi.lpfn
=BrowseCallbackProc;bi.lParam=(lParam)szCurrent

pidl=SHBrowseForFolder(&bi)

如果(NULL!=pidl){ retval=SHGetPathFromIDList(pidl,szPath); CoTaskMemFree(pidl);}else{ retval=FALSE;}

如果(!retval){ szPath[0]=文本('\0');}

coninitialize();返回retval

}静态int回调 BrowseCallbackProc(HWND HWND,UINT uMsg、LPARAM LPARAM、LPARAM lpData) { //如果BFFM_初始化消息为 已接收//将路径设置为起始 路径。
开关(uMsg){case BFFM_已初始化:{if(NULL= lpData){SendMessage(hwnd, BFFM_SETSELECTION,TRUE,lpData);} }}

返回0;//函数


25个字符对于完整路径长度来说似乎有点短,我会使用MAX_path。

tanx作为您的回复。但是我解决了这个问题…我使用了编辑控件的对话框模式。我尝试了SetdlgItemText(..)而不是dlg.SetdlgItemText。它工作正常GR8我很高兴您能让它工作,但这个问题似乎不会导致运行时错误。