程序是基于对话框的,用一个“浏览”按钮选择文件的地址,用一个编辑框接收显示,然后对文件进行操作。代码如下:
void CMyDlg::OnButton1()
{
// TODO: Add your control notification handler code here
BROWSEINFO bi;
char Buffer[MAX_PATH + 1100];
bi.hwndOwner = NULL;
bi.pidlRoot =NULL;
bi.pszDisplayName = Buffer;
bi.lpszTitle = "请选择文件";
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;
LPITEMIDLIST pIDList= SHBrowseForFolder(&bi);
if(pIDList)
{
SHGetPathFromIDList(pIDList, Buffer);
m_filepath1 = Buffer;
SetDlgItemText(IDC_EDIT1,m_filepath1);
}
}
在debug时可以正常选择文件,在release下不行,有时只能选择文件夹,还有时只有桌面上的文件可供选择。想不明白啊,哪位高手帮我看看,问题出在哪里?小弟拜谢了!!
void CMyDlg::OnButton1()
{
// TODO: Add your control notification handler code here
BROWSEINFO bi;
char Buffer[MAX_PATH + 1100];
bi.hwndOwner = NULL;
bi.pidlRoot =NULL;
bi.pszDisplayName = Buffer;
bi.lpszTitle = "请选择文件";
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;
LPITEMIDLIST pIDList= SHBrowseForFolder(&bi);
if(pIDList)
{
SHGetPathFromIDList(pIDList, Buffer);
m_filepath1 = Buffer;
SetDlgItemText(IDC_EDIT1,m_filepath1);
}
}
在debug时可以正常选择文件,在release下不行,有时只能选择文件夹,还有时只有桌面上的文件可供选择。想不明白啊,哪位高手帮我看看,问题出在哪里?小弟拜谢了!!
后再试试。
这个缓冲没必要开这么大吧
这里有一个基于路径对话框的例子
或许你可以参考一下
http://blog.csdn.net/xianglitian/article/details/6753472
bi.ulFlags没有被设置。调试时会被初始化为0xcccccccc,发布时会是未定义值。
bi.iImage是系统图像列表中的图像索引,不是资源的索引。