3
는 ++ 나는 예를 string str = "a\0b\0c";
C++과 C# 사이에 null 문자가 포함 된 문자열을 전달하는 방법은 무엇입니까? C에서
를 들어, 일부 문자열을하고 난 "\ 0"후 데이터의 손실없이 C#을이 문자열을 전달해야하고, 데이터를 잃지 않고 또한 C++에 C#을 통과에서.
도와 주시겠습니까?
는 ++ 나는 예를 string str = "a\0b\0c";
C++과 C# 사이에 null 문자가 포함 된 문자열을 전달하는 방법은 무엇입니까? C에서
를 들어, 일부 문자열을하고 난 "\ 0"후 데이터의 손실없이 C#을이 문자열을 전달해야하고, 데이터를 잃지 않고 또한 C++에 C#을 통과에서.
도와 주시겠습니까?
좋아, 내 질문에 대한 답변을 찾았습니다. 아마, 좋은 해결책은 아니지만 내 문제를 해결합니다. C++ :
string EncodeConfigString(string OptionsString)
{
string tempOptions = " ";
if (OptionsString.size() != 0)
{
vector<int> arrayOfIntCodes;
for (int i = 0; i < OptionsString.size(); i++)
{
int codeOfChar = OptionsString[i];
tempOptions += std::to_string(codeOfChar) + "&";
}
}
return tempOptions;
}
C 번호 :
private string DecodeConfig(StringBuilder OptionsBuilder)
{
string result = String.Empty;
string Options = OptionsBuilder.ToString();
if (!string.IsNullOrEmpty(Options) && Options.Contains(Consts.AMPERSAND))
{
string[] entries = Options.Split(Consts.AMPERSAND);
StringBuilder chars = new StringBuilder(Consts.OUTPUT_MAX_SIZE);
for (int i = 0; i < entries.Length; i++)
{
int resultParse;
if (int.TryParse(entries[i], out resultParse))
{
chars.Append((char)resultParse);
}
}
result = chars.ToString();
}
return result;
}
이 C++/CLI하거나 C++인가? –
잘 모르겠지만 아마 C++/CLI –
음 .. 이건'std :: string' 또는'System.String ^'입니까, 아니면 다른 것입니까? 어쨌든 C++/CLI 인 경우 [this] (https://msdn.microsoft.com/en-us/library/bb384865.aspx)를 참조하십시오. –