不能将参数 从“CString”转换为“const wchar_t *”
有一个打开文件的操作:
这段代码以前使用过,现在又需要用到,直接copy过来用,结果却出现了以下错误:
CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 3 从“const wchar_t [13]”转换为“LPCTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
wcstombs_s”: 不能将参数 4 从“CString”转换为“const wchar_t *”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
对于这些格式的转化最头疼了。。。。。关键是 ,为什么 之前可以用,现在却不可以了呢?
CFileDialog opendlg(false,NULL,L"Video_00.avi",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,L"Video Files (*.avi)|*.avi|All Files (*.*)|*.*||",NULL);
if (opendlg.DoModal() == IDOK)
{
strFileName = opendlg.GetPathName();
}
const size_t strsize=(strFileName.GetLength()+1)*2; // 宽字符的长度;
char* pstr= new char[strsize]; //分配空间;
size_t sz=0;
wcstombs_s(&sz,pstr,strsize,strFileName,_TRUNCATE);
int n=atoi((const char*)pstr);这段代码以前使用过,现在又需要用到,直接copy过来用,结果却出现了以下错误:
CFileDialog::CFileDialog(BOOL,LPCTSTR,LPCTSTR,DWORD,LPCTSTR,CWnd *,DWORD,BOOL)”: 不能将参数 3 从“const wchar_t [13]”转换为“LPCTSTR”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
wcstombs_s”: 不能将参数 4 从“CString”转换为“const wchar_t *”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
对于这些格式的转化最头疼了。。。。。关键是 ,为什么 之前可以用,现在却不可以了呢?
...全文
相关推荐
C++编程之CString、string与、char数组的转换
(CP_ACP, 0, szDCBparam, -1, NULL, 0);wchar_t *pwText = new wchar_t[dwNum] ;if (!
CString-const-char-char-to-WCHAR.rar_CString To Char_char wchar_
本文将详细讲解如何在UNICODE环境下,使用C++的CString类进行宽字符(WCHAR)与const char及char之间的转换。
(const) char 转CString 详解(字符串类型转换详解,不断补充)
`CString`可以接受`const char*`、`wchar_t*`等不同格式的字符串指针作为输入,并能自动进行适当的编码转换。#### 2.
CString,字符串,整数等相互转换方法(推荐)
`_wtoi(const wchar_t *string)` 和 `_wtoi64(const wchar_t *string)` 是宽字符版本的转换函数,用于处理Unicode字符串。
CString类型转换
str2 = str1;// 从 char* 初始化const char* psz = "Hello";CString str3(psz);// 从 wchar_t* 初始化const wchar_t


