gpt4 book ai didi

c++ - 托管 C++ 如何将 NOT Null 终止的 const char * 转换为 String ^

转载 作者:行者123 更新时间:2023-11-30 01:53:55 25 4
gpt4 key购买 nike

在我的原生 + 托管代码项目中,我需要将 const char *(非空终止)转换为托管字符串 ^。当 char * 正确以 null 终止时,以下代码运行良好。但是,当 char * 不是空终止时,它会返回疯狂的字符串。

String^ STAK::CLRServerProxy::ToCLR(const char* str)
{
return msclr::interop::marshal_as<String^>(str);
}

有什么方法可以要求它仅将 native char * 编码为前 5 个字符? (这个原生字符串总是 5 个字符长)

谢谢,

最佳答案

String^ STAK::CLRServerProxy::ToCLR(const char* str)
{
return Marshal::PtrToStringAnsi((IntPtr) (char *) str, 5)
}

或者如果你想让它更灵活

String^ STAK::CLRServerProxy::ToCLR(const char* str, size_t n)
{
return Marshal::PtrToStringAnsi((IntPtr) (char *) str, n)
}

通过传递 5 作为第二个参数来调用

关于c++ - 托管 C++ 如何将 NOT Null 终止的 const char * 转换为 String ^,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22628462/

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