void CMy002Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
char filter[]="所有文件(*.*)|*.*||";
CFileDialog fdlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,filter);
fdlg.m_ofn.lpstrInitialDir="c:\\";
if(fdlg.DoModal()==IDOK)
{
GetDlgItem(IDC_EDIT1)->SetWindowText(fdlg.GetPathName());
}
}
编译之后有如下错误,不知道该如何进行转换,编辑框的id为IDC_EDIT1
5 IntelliSense: 未定义标识符 "IDC_EDIT1"
3 IntelliSense: 没有与参数列表匹配的构造函数 "CFileDialog::CFileDialog" 实例
4 IntelliSense: 不能将 "const char *" 类型的值分配到 "LPCWSTR" 类型的实体 f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp
1.error C2664: “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 5 从“char [20]”转换为“LPCTSTR” f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp
2 error C2440: “=”: 无法从“const char [4]”转换为“LPCWSTR” f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp 162 1 002那个大虾能告诉我该怎样进行转换啊?在vc++6.0可以,但是在vc++2010就不行了
{
// TODO: 在此添加控件通知处理程序代码
char filter[]="所有文件(*.*)|*.*||";
CFileDialog fdlg(true,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,filter);
fdlg.m_ofn.lpstrInitialDir="c:\\";
if(fdlg.DoModal()==IDOK)
{
GetDlgItem(IDC_EDIT1)->SetWindowText(fdlg.GetPathName());
}
}
编译之后有如下错误,不知道该如何进行转换,编辑框的id为IDC_EDIT1
5 IntelliSense: 未定义标识符 "IDC_EDIT1"
3 IntelliSense: 没有与参数列表匹配的构造函数 "CFileDialog::CFileDialog" 实例
4 IntelliSense: 不能将 "const char *" 类型的值分配到 "LPCWSTR" 类型的实体 f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp
1.error C2664: “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 5 从“char [20]”转换为“LPCTSTR” f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp
2 error C2440: “=”: 无法从“const char [4]”转换为“LPCWSTR” f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp 162 1 002那个大虾能告诉我该怎样进行转换啊?在vc++6.0可以,但是在vc++2010就不行了
改成
CString filter = "所有文件(*.*)|*.*||";
未定义标识符 "IDC_EDIT1"
看看你的资源文件里时候有该控件
CString str = _T("");应当这样使用
2、你Domodal()后窗口已经销毁,真怀疑用GetDlgItem还能不能获取edit的内容,保险点还是edit关联CString变量吧
3、如果是unicode环境的话,少用char,而是TCHAR
TCHAR filter[]=_T("所有文件(*.*)|*.*||");
// unicode工程,很多函数参数都要用 wchar*, 而不是 char*
// 为了兼容,可以用MBCS和unicode都可以用的TCHAR.h的中的宏
1.error C2664: “CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 5 从“char [20]”转换为“LPCTSTR” f:\c++程序设计\vc++范例开发大全\002\002\002dlg.cpp//从错误提示来看,明显是楼主人第5个参数传错了,呵呵,出错信息中已经给出函数原型了:CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)在vc++2010下工程环境的字符集默认是unicode建议将这行:char filter[]="所有文件(*.*)|*.*||";
改为: TCHAR filter[]="所有文件(*.*)|*.*||";//其它的建议也用通用宏吧!...
改为: TCHAR filter[]=_T("所有文件(*.*)|*.*||");