gpt4 book ai didi

c++ - 如何将 SWORD 和 PBYTE 解析为 std::string

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

我正在编写一些代码,这些代码将使用 C++ 中的 LDAP 从 Active Directory 中读取。我得到的结构之一是 AD_OCTET_STRING,这是一个由 8 位字节表示的字符串。

结构看起来像这样:

typedef struct __MIDL___MIDL_itf_ads_0000_0000_0002
{
DWORD dwLength;
LPBYTE lpValue;
ADS_OCTET_STRING;
}

dwLength 是第二个值的长度,它是一个 BYTE 指针。现在我需要使用 dwLength 中的长度来正确解析它。

我知道 basic_string 有一个构造函数,您可以在其中传递长度,但我没能成功。谁知道如何解决这个问题?

最佳答案

std::string 可以用任何一对迭代器初始化,其 value_type 可转换为字符串的字符类型。

#include <cstdint>
#include <string>

using LPBYTE = std::uint8_t *;
using DWORD = std::uint32_t;

struct temp
{
DWORD dwLength;
LPBYTE lpValue;
};

std::string to_string(const temp& source)
{
return std::string(source.lpValue, source.lpValue + source.dwLength);
}

关于c++ - 如何将 SWORD 和 PBYTE 解析为 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566359/

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