gpt4 book ai didi

c++ - 在库 API 中传递 std::string

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:39 27 4
gpt4 key购买 nike

我们目前正在为某个库构建 API。部分接口(interface)需要库获取并返回给用户类,如vector、string。

当尝试在简单场景中模拟库的使用时,在 Debug模式下,系统会在将字符串作为输入传递时崩溃。

我相信在调试或 Release模式下字符串类有不同的表示。然后我们的库假设接收到某种表示,错误地读取数据成员并一路崩溃。那么在 API 中传输 STL 对象的最佳方法是什么。目标操作系统是使用 MSVC 8 编译的 Windows XP,尽管库用户将使用 Windows,但他们的编译器可能(并且可能会)不同到目前为止我们的想法:

  1. 将字符串更改为 char* - 但开发人员可能会对释放内存的责任感到困惑。
  2. 使用我们自己的字符串版本——我不想开发另一个字符串的私有(private)实现。
  3. 发布给用户debug版本和release版本。
  4. 向 Stack overflow 上的人们询问我们遗漏或不理解的一些选项,或者只是听听他们的经验 - 完成。

最佳答案

让人在debug模式下链接到debug,在release模式下链接到release,一点也不无道理。几乎每个图书馆都是这样做的。即使像 DirectX 这样的大型项目也会发布其二进制文件的调试编译。 #3 是一个完全合理的选项/解决方案。

关于c++ - 在库 API 中传递 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com