gpt4 book ai didi

string - 是否可以在 C++/CLI 中获得指向 String^ 内部数组的指针?

转载 作者:行者123 更新时间:2023-12-05 00:41:20 25 4
gpt4 key购买 nike

目标是在我需要 const wchar_t* 时避免复制字符串数据。 .

答案似乎是肯定的,但是函数 PtrToStringChars 没有自己的 MSDN 条目(它只是在知识库和博客中作为技巧提及)。这让我产生了怀疑,我想和你们核实一下。使用该功能是否安全?

最佳答案

这是一个基于 PtrToStringChars 的完整解决方案,它访问托管字符串内部,然后使用标准 C 函数复制内容:

wchar_t *ManagedStringToUnicodeString(String ^s)
{
// Declare
wchar_t *ReturnString = nullptr;
long len = s->Length;

// Check length
if(len == 0) return nullptr;

// Pin the string
pin_ptr<const wchar_t> PinnedString = PtrToStringChars(s);

// Copy to new string
ReturnString = (wchar_t *)malloc((len+1)*sizeof(wchar_t));
if(ReturnString)
{
wcsncpy(ReturnString, (wchar_t *)PinnedString, len+1);
}

// Unpin
PinnedString = nullptr;

// Return
return ReturnString;
}

关于string - 是否可以在 C++/CLI 中获得指向 String^ 内部数组的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3046137/

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