IDE环境中显示空格

今天突然想起来我还有个Blog,一别一年有余,
昨日痛下决心,有事没事都来写上两笔
免得我自己的一片天地荒芜了
也可惜了我这每天孜孜不倦的学习

昨天也没什么事,就是同事让我帮忙看一个Bug,出现问题的代码如下:

  1. string url = " http://****.com/services/";
  2. url +=  "?api_key=" + m_apiKey + "&perms=write" + "&frob=" + m_frob;
  3. wstring wurl = makeWide(url);
  4. ShellExecute(m_hwnd,L"open", wurl.c_str(), 0, 0, SW_SHOW);

功能是调用某网站OpenAPI,过程是创建url,附上一些Key和参数,转换成宽字符,调用浏览器打开url
可是最后一句总是失败,返回错误代码2,找不到文件
 
同事调试的时候把url直接复制到IE地址栏却是正确的
但我看到他在复制后删除url字符串的引号是时多按了一次delete键
 
问题就在这,url初始化地址从别的地方复制过来的时候,开头多加了一个空格
但是同事的笔记本屏幕比较小,他把IDE的字体设置的也比较小
所以几乎无法看出来字符串开头有个空格
 
url被转换成宽字符后,调用c_str返回字符串指针,内存中的值为“0x 20 00 69 00 74 00 ...”
作为ShellExecute的时候被强制转换成LPCSTR,把“0x 20 00”解释成字符串“ ”
 
可怜同事一下午的人工耗费在一个小小的空格上面
 
以前看到IDE(vs2005,Eclipse)有个功能把空白字符(tab,空格)显示成点或箭头符号
一直觉得这个功能纯属多余
本来留白就是为了代码错落有致,赏心悦目
无端把空白填上,反而有添乱的感觉
不过这个功能却能让上面那个问题的罪魁祸首现原形
也不是一无是处
 
另外Makefile中的命令行一定需要tab开头
如果被4个或8个空格替代了,单凭肉眼实在找不出问题
也许也是这个功能的用处之一
至于其他,待我往后留心一下。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值