C ++ Data-Url as String to const byte *

时间:2012-10-09 13:14:54

标签: c++ string byte

我有一个Data-Url文件作为std:string。 必须对base64编码数据进行解码,然后将其传递给此函数:

open (const byte *  data, long size)

首先我提取编码数据

size_t pos = dataurl.find_first_of(',');
std::string encoded = dataurl.substr(spos + 1);

然后我使用这个base64 decoder

std::string decoded = base64_decode(encoded);

那么,我如何将'string'类型字符串转换为byte *? 以下代码生成错误

open((byte *)decoded.c_str(), decoded.size() + 1);
//>>error: 'byte' was not declared in this scope

/编辑:所以有一个typedef

typedef uint8_t     byte

编码数据是图像!

2 个答案:

答案 0 :(得分:1)

您似乎正在删除constc_str()会返回const char *。你的演员应该是(const byte *)

答案 1 :(得分:-1)

byte是unsigned char。试试open((unsigned char *)decoded.c_str(), decoded.size() + 1);

是的,根据原始base64字符串中编码的内容,您可能希望使用不同的解码方法