我想编写一个函数,将字符串从 Platform::String^ 对象传输到我自己的对象之一。为此,我需要从 Platform::String^ 对象中获取一个 char*。但是,我不确定如何确定我需要的缓冲区的大小。
我想做这样的事情:
void PlatStrToCustomStr(Platform::String^ source, CustomStrObject& destination)
{
int bufferSize = (source->Length()*2)+1; //How do I know how big?
char* buffer = new char[bufferSize];
size_t* result;
wcstombs_s(result, buffer, bufferSize, source->Begin(), bufferSize);
destination.copy(buffer);
free(buffer);
}
有没有办法让我知道 bufferSize 必须有多大?
我知道还有其他类似的问题,但我没有用代码找到这个特定问题的答案。