关于CString类中format方法的奇怪问题.
今天帮同学调试代码,发现了一个很奇怪的问题.
他在资源中定义了一个字符串 IDS_USER_COUNT "Users: %d"
在其函数中,他这样使用:
int count = 0;
......
//count被赋值
......
CString sRes;
sRes.LoadString(IDS_USER_COUNT);
sRes.Format(sRes, count); //当count >= 100时,此处会导至程序crash.
如何将代码改为
sRes.Format(IDS_USER_COUNT, count)或者sRes.Format(_T("Users: %d"), count),
可以正常运行.
这里,
sRes.LoadString(IDS_USER_COUNT);
sRes.Format(sRes, count); //当count >= 100时,此处会导至程序crash.
这种写法肯定不好,但它在count>=100让我有些整不明白,各位能帮我解释一下吗,
先谢过了,我是知其然,不知其所以然,知道修改,但不知道为什么,呵呵.