开发者社区 问答 正文

关于CString的问题.我定义了一个CString的全局对象GetPath

我定义了一个CString的全局对象GetPath
上一步GetPath的值为"C:windowsuser"
然后我GetPath+="data.txt";
GetPath的值怎么变成了“data.txt”而不是"C:windowsuserdata.txt"
PS: GetPath我是定义在另一个源文件中的

展开
收起
a123456678 2016-03-04 16:52:15 2342 分享 版权
1 条回答
写回答
取消 提交回答
  • CString s1 = _T("This ");        // Cascading concatenation
    
    s1 += _T("is a ");
    
    CString s2 = _T("test");
    
    CString message = s1 + _T("big ") + s2;  
    
    // Message contains "This is a big test".

    CString类是重载了“+”操作的,没有问题,请仔细检查下代码。
    如果GetPath定义在另一个源文件中,那么请加上这么一句:

    extern CString GetPath;
    不然编译怎么可能通过能,应该提示“无法解析的外部变量”!

    还有“GetPath+="data.txt";”应该写成“GetPath+="\data.txt";”,因为“”是转义符号,而不是路径中的分割符。
    如果不知道到底是哪儿出了问题,可以在“GetPath+="data.txt";”前加个断点(break point),然后F5启动调试,配合F10单行调试,看看到底是哪儿引起赋值错误。

    2019-07-17 18:52:32
    赞同 展开评论
问答地址: