【发布时间】:2011-11-10 22:58:22
【问题描述】:
一些简单的代码在我一直在使用的 sdk 中开始失败,而且它显然已经正常工作了很长时间,事实上我几乎肯定我已经编译了这样的部分代码并且他们已经工作,但最近失败了。
在调试器中确认值的示例:
void SomeFunction(CString& paramstring) //let's pretend we pass a string with the value "hello"
{
int size=paramstring.GetLength(); //size now contains an incorrect shorter value like 4
CString localstring=paramstring;//localstring contains something like "hell" or "hel"
}
任何想法为什么会发生这种情况
【问题讨论】:
-
给您的提示:粘贴代码时,将其全部突出显示并点击
{}按钮以正确格式化。 -
在这个简短的示例中一定有一些你没有透露的信息,因为它绝对没有失败的理由。
-
你在用 CString 做什么?您是否以任何方式对其进行修改?在你将它传递给函数之前它是什么样子的?
-
@Zack 我认为它是 M$oft ATL 类。
-
它是 MFC。使用 M$ 充其量是微不足道的。
标签: c++ pass-by-reference truncate cstring