これはよくある質問であることは知っていますが、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 に変換するためのマーシャリング オプションもチェックしましたが、何も見つかりませんでした。