如何将 std::string 的内容获取到 CFData 对象中?

Posted

技术标签:

【中文标题】如何将 std::string 的内容获取到 CFData 对象中?【英文标题】:How can I get the contents of an std::string into a CFData object? 【发布时间】:2010-09-21 21:12:40 【问题描述】:

我有一个function,它返回一个std::string 对象。我正在使用 Cocoa/CoreGraphics,我需要一种方法将该字符串中的数据获取到 CFData object 以便我可以将 that 输入到 CGDataProviderCreateWithCFData object 到制作一个CGImage

CreateCFData 函数需要一个 const UInt8* 对象(UInt8unsigned char 的 typedef)。该字符串表示解码后的 Base64 字符串(图像数据)中的字节,因此它似乎包含许多空“字符”,因此将 .c_str() 输出明显转换为 unsigned char* 对象将不起作用。

我对 C++ 的经验较少,而且对 Cocoa/CoreGraphics 非常陌生,所以如果有更好的方法来完成我想做的事情,请告诉我。

【问题讨论】:

【参考方案1】:

CFDataCreate( NULL, (const UInt8*) myString.data(), myString.size() )

【讨论】:

以上是关于如何将 std::string 的内容获取到 CFData 对象中?的主要内容,如果未能解决你的问题,请参考以下文章

C++:如何将 std::string 的内容写入 UTF-8 编码文件?

如何使用参数将 std::string 复制到 std::string?

如何将 std::string 转换为 WCHAR

如何将std :: string复制到unsigned char数组?

C++ 字符串 - 如何避免获取无效指针?

c++ map怎样根据索引的内容查找到key