gpt4 book ai didi

c++ - 在 std::string 中是否有等效的方法来执行 CString::GetBuffer?

转载 作者:搜寻专家 更新时间:2023-10-31 01:20:40 26 4
gpt4 key购买 nike

许多 Windows API,例如 GetModuleFileName 等...将输出写入 char* 缓冲区。但是用std::string更方便。有没有办法让它们直接写入 std::string(或 std::wstring)的缓冲区?

抱歉我的英语不好。我不是以英语为母语的人。 -_-

Taworn T.

最佳答案

如果您使用的是 C++0x,那么以下内容保证有效:

std::string s;
s.resize(max_length);
size_t actual_length = SomeApiCall(&s[0], max_length);
s.resize(actual_length);

在C++0x之前std::string的内容在内存中不保证连续,所以理论上代码不可靠;实际上,它适用于流行的 STL 实现。

关于c++ - 在 std::string 中是否有等效的方法来执行 CString::GetBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4533546/

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