关于vs2005字符串format的问题
str.Format("%d",i);str是定义的CString
我在调用字符串format函数的时候出错,i是int型。在vs2003里可以啊,这是怎么回事啊。
d:\c++\practice\text\text\textdlg.cpp(177) : error C2664: “void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 从“const char [3]”转换为“const wchar_t *”
with
[
BaseType=wchar_t,
StringTraits=StrTraitMFC_DLL<wchar_t>
]
没大看明白 --------------------编程问答-------------------- _T("%d") --------------------编程问答-------------------- UNICODE和ANSIC字符的问题吧
用str.Format(_T("%d"),i); --------------------编程问答-------------------- 同意,或者是TEXT("%d") --------------------编程问答-------------------- _T --------------------编程问答-------------------- VC2005默认是Unicode,_T宏表示一种中间类型,编译器会根据你的编译选项决定用Unicode还是宽字符,
一般来讲只要出现字符串,强烈推荐用_T宏 --------------------编程问答-------------------- str.Format(_T("%d"), i);
ps:2003中不加_T也是不正确的吧?? --------------------编程问答-------------------- 编译器有个选项.不用Unicode以后,就和以前的VC6.0的MFC对字符串的操作一样了~ --------------------编程问答-------------------- 楼上提到的两种方法都是正解,建议试下。2005的编译选项默认是Unicode的,而 _T 起一个“智能”转换的作用。 --------------------编程问答-------------------- csdn果然是好地方
刚才我也遇到这个问题。真不习惯啊 --------------------编程问答-------------------- 编译器有个选项....在通用属性中设置字符集为多语言字符集... --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 同意楼上的! --------------------编程问答-------------------- 向导里有选择多字符集的吧。 --------------------编程问答-------------------- 回帖是一种美德!传说每天回帖即可获得 10 分可用分! --------------------编程问答-------------------- 也可以在设置中将Unicode改成多字节 --------------------编程问答-------------------- 我也有遇到过,解决办法是
str.Format("%d",i);----->str.Format(L"%d",i);
楼主不防试试! --------------------编程问答-------------------- str.Format(_T("%d"),i); --------------------编程问答-------------------- 1.项目改成多字符集..
2.使用_T
两种都可.. --------------------编程问答-------------------- str.Format(_T("%d"),i); --------------------编程问答-------------------- _T("%d")
L"%d"
两种写法都能解决 --------------------编程问答-------------------- _T("%d")
L"%d"
两种写法都能解决 --------------------编程问答-------------------- 同意,2003和2005的Format有相当大的区别,就是_T搞鬼 --------------------编程问答-------------------- 终于找到正解了-^ ^ --------------------编程问答-------------------- str.Format(_T"%d",i); --------------------编程问答-------------------- 终于找到正解了-^ ^ --------------------编程问答-------------------- str.Format(_T("%d"),i); --------------------编程问答-------------------- 问题得解 --------------------编程问答-------------------- 占个位置学习一下
补充:.NET技术 , VC.NET