问题1:xx.Format()不存在与参数列表匹配的重载函数
问题:文件的路径名字是通过Format转换组合而成的,会报错“FileName.Format()不存在与参数列表匹配的重载函数”。
FileName.Format("%s%d", FilePath, num);//报错:FileName.Format()不存在与参数列表匹配的重载函数
原因:VS默认使用的是“unicode”编码。
解决方案:
- 为Format格式中加入“T_”或者“L”。
FileName.Format(L"%s%d", FilePath, num);
FileName.Format(_T("%s%d"), FilePath, num);
- 解决方案窗口右键工程名->属性->配置属性->常规->项目默认值->字符集->选择“多字节”。
问题2:Format格式中加入“T_”或者“L”组成的地址,fopen_s无法为其创建文件
问题:问题1中使用Format格式中加入“T_”或者“L”来解决地址转换组合问题,地址路径正确但fopen_s也无法创建文件。
FileName.Format(L"%s%d", FilePath, num);
FileName = FileName + (CString)(".txt");
fopen_s(&file, (const char*)(FileName.GetBuffer()), "wb");//无法创建,返回值是NULL
原因:fopen_s无法识别该编码的路径。
解决方案:
- 解决方案窗口右键工程名->属性->配置属性->常规->项目默认值->字符集->选择“多字节”。