zoukankan      html  css  js  c++  java
  • 关于 API 中返回字串的一些问题

    这几天在写个东西,其中有个函数,有这么几句

    Code

    }

    但是调试发现FullPath总是得于PathName,就是说ExtNames[i]没被加上。。。

    花了2小时才发现问题。原来PathName是调用ExpandEnvironmentStrings得到的

    Code

    查MSDN发现,ExpandEnvironmentStrings返回的长度是包括了\0的。。。

    所以返回的结果最后有个\0,不管你在后面加什么,编译器都认为字符串到\0就结束了,这就是问题所在

    只要这么改下就好了

    Result.SetLength(::ExpandEnvironmentStrings(PathName.c_str(), &Result[1], MAX_PATH) - 1);

    其他如GetSystemDirectory返回的长度是不变包括\0的,所以没这个问题

    把这个记下来,免得到时候自己忘了

  • 相关阅读:
    原生JS---2
    PHP中include和require绝对路径、相对路径问题
    魔方(小玩具)
    html5技术介绍
    苹果电脑 快捷键
    写代码的心得,怎么减少编程中的 bug?
    http状态代码含义表
    开源项目
    蓝牙 CoreBluetooth
    减小iOS应用程序的大小
  • 原文地址:https://www.cnblogs.com/sephil/p/1488378.html
Copyright © 2011-2022 走看看