错误与CString当我导入vc++ 2005
Error with CString when I import into VC++2005?
我用vc++ 6.0编写代码,导入到vc++ 2005中。我得到一个模糊的错误与unicode插入现在?
CString s;
s.Format("%frn", (double)timebTime.time + (double)timebTime.millitm / 1000);
s+="RAMP,";
s+=0x00b5; // <-- Error: VC++(2005): "error C2593: 'operator +=' is ambiguous"
s+="m";
注意vc++ 6.0的默认编译模型是ANSI/MBCS(即TCHAR
是char
, CString
是char
's的序列,等等),而vc++ 2005的默认编译模型是Unicode(即TCHAR
是wchar_t
, CString
实际上是CStringW
,即wchar_t
字符串)。
我只使用Unicode模型(不需要ANSI/MBCS兼容性和TCHAR
, _T("...")
等),并像这样调整代码:
static const wchar_t microSign = 0x00B5;
CString s;
s.Format(L"%frn",
static_cast<double>(timebTime.time) +
static_cast<double>(timebTime.millitm) / 1000.0);
s += L"RAMP,";
s += microSign;
s += L"m";
注意,使用命名常量(如microSign
)比使用"幻数"(如0x00B5
)使代码更具可读性。
此外,我会在应用程序资源中存储格式字符串(包括"RAMP,µm
"部分),并从那里加载它,而不是在源代码中构建它。
相关文章:
- 尝试导入pybind-opencv模块时出现libgtk错误
- 导入库可以跨dll版本工作吗
- 参考资源文件VC++中的$(SolutionDir)
- 建议在运行时将带有类实例的列表从c++导入qml
- VC++本机单元测试,找不到调试符号
- 导入/导出变量时出错
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- 是否可以将函数导入命名空间,但不能导出它?
- 如何将 CLion C++ 项目导入 Visual Studio?
- Python 3.8 不能与 Pybind11 一起导入 [Windows]
- 无法将标准库导入本机 android 项目中的头文件
- 尝试了解在导入的静态方法上使用删除方法时的错误
- 在 python 模块中导入子模块时PyImport_Import失败
- 将 C# DLL 导入 C++ 以用于 JNI
- 使用 QSslCertificate 在 Qt 中正确导入 pkcs12
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 如何在Windows表单应用程序vc ++中导入C静态库
- dll从VC++导入到VB函数的转换从dll返回错误,因为缺少链接库
- 错误与CString当我导入vc++ 2005