CString + 问题?

hzy694358 2009-11-16 03:14:55
str_QuickLaunchPath:CString变量
str_QuickLaunchPath为:“abcde”
str_QuickLaunchPath=str_QuickLaunchPath + "\\";
结果str_QuickLaunchPath内容为“\”
有点晕
...全文
140 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzy694358 2009-11-17
  • 打赏
  • 举报
回复
help
help
hzy694358 2009-11-16
  • 打赏
  • 举报
回复
没为空,所以才感觉奇怪,但是我自己测试:
CString a=“ajd”;
CString b=“dfd”;
a=a+b;
a此时就是“ajddfd”,所以编译器应该也没问题吧
所以我觉得是作为参数传进那个函数里面改变了什么,
哪个函数在7楼已经贴出来了
  • 打赏
  • 举报
回复
对 单步跟中
哈利路亚1874 2009-11-16
  • 打赏
  • 举报
回复
CString str_QuickLaunchPath;
str_QuickLaunchPath.Format("abcde");
str_QuickLaunchPath += "/";
我想这才是你想要的。
估计你的str_QuickLaunchPath为空!单步跟踪调试一下!
roman_v 2009-11-16
  • 打赏
  • 举报
回复
不知道,反正直接+出错的时候我都用cstring.format
hzy694358 2009-11-16
  • 打赏
  • 举报
回复
有点失误,应该是:
正确:
CString strQuick;
strQuick=str_QuickLaunchPath ;
str_QuickLaunchPath = strQuick+ "\\" + strShortcut;
hzy694358 2009-11-16
  • 打赏
  • 举报
回复
详细的调用方法:
CString str;
CString str_QuickLaunchPath="";
GetQuickLaunchDir((PSTR)(LPCSTR)str_QuickLaunchPath))//参数是PSTR类型

出错:
str_QuickLaunchPath = str_QuickLaunchPath + "\\" + strShortcut;
出错:
str=str_QuickLaunchPath ;
str_QuickLaunchPath = str+ "\\" + strShortcut;
正确:
CString strQuick;
str_QuickLaunchPath = strQuick+ "\\" + strShortcut;

谁知道的解释下哈
xiyuchenbing 2009-11-16
  • 打赏
  • 举报
回复
str_QuickLaunchPath += "\\";

我试着是正常的
hzy694358 2009-11-16
  • 打赏
  • 举报
回复
没人知道是怎么回事吗?
hzy694358 2009-11-16
  • 打赏
  • 举报
回复
不好意思,原来有调用了这么一个函数:
bool CShellLinkDlg::GetStartMenuDir( CString &pszDir )
{
LPITEMIDLIST pidl;

if( SHGetSpecialFolderLocation(NULL, CSIDL_STARTMENU, &pidl) != NOERROR )//CSIDL_PROGRAMS
return false;

if( SHGetPathFromIDList(pidl, (LPSTR)(LPCTSTR)pszDir) == false )
return false;

return true;
}

GetStartMenuDir( str_QuickLaunchPath );
str_QuickLaunchPath 是有值的,然后再
str_QuickLaunchPath=str_QuickLaunchPath + "\\";
结果只有:“\”

这个是为什么呢,
bragi523 2009-11-16
  • 打赏
  • 举报
回复
是多字节的工程哈?
messagebox打出来看看
要是release得话,有可能你看到的东西并不对
tanwei1002 2009-11-16
  • 打赏
  • 举报
回复
楼主你调试下看看

str_QuickLaunchPath为:“abcde”
str_QuickLaunchPath=str_QuickLaunchPath + "\\";

结果应该是 abcde\
baoyufu 2009-11-16
  • 打赏
  • 举报
回复
你别用同一个变量名试试吧
VC里 "\\"是只显示为"\"的
wltg2001 2009-11-16
  • 打赏
  • 举报
回复
str_QuickLaunchPath=str_QuickLaunchPath + "\\";
结果str_QuickLaunchPath内容为“\”
==========
不可能的吧,应该是abcd\才对
hzy694358 2009-11-16
  • 打赏
  • 举报
回复
大哥不要玩我行不,
那为什么不是:“abcde\”
hufen2740 2009-11-16
  • 打赏
  • 举报
回复
第一个‘\’为转义字符啦 告诉编译器紧接后面的字符为普通的字符

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧