gpt4 book ai didi

.net - 在c++/cli中将std::string或string ^转换为字节数组

转载 作者:行者123 更新时间:2023-12-03 11:56:31 24 4
gpt4 key购买 nike

我知道这是一个常见问题,我还没有将std::string或String ^转换为字节数组以写入tcp通信流的明确答案。

这就是我尝试过的

bool CTcpCommunication::WriteBytes(const std::string& rdatastr)
{
bool retVal = false;

try
{
if (static_cast<NetworkStream^>(stream) != nullptr)
{
array<Byte>^data = System::Text::Encoding::ASCII->GetBytes(rdatastr);
stream->Write( data, 0, data->Length );
}
}
catch(Exception^)
{
// Ignore, just return false
}
return retVal;
}

我知道这里的GetBytes无法正常工作,我也检查了将std:string转换为.NET String的编码选项,但还没有发现任何问题。有人可以帮助我解决这个问题。

最佳答案

编码已经正确,无需转换。只需复制:

array<Byte>^ data = gcnew array<Byte>(rdatastr.size());
System::Runtime::InteropServices::Marshal::Copy(IntPtr(&rdatastr[0]), data, 0, rdatastr.size());

关于.net - 在c++/cli中将std::string或string ^转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11355743/

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