谁能给我一个例子,告诉我如何使用C++从MongoDb中检索binData记录?
我尝试了以下代码,但返回了垃圾信息:
char* arrS;
while (dbResult->more())
{
record = dbResult->next();
strcpy(arrS, record.getField("s").binData(iLen));
}"s“是我的binData字段。提前感谢你,任何建议都是非常感谢的。
发布于 2012-08-31 06:51:24
参数iLen实际上是binData的(第二个)返回值。您可以像这样提取二进制内容:
int iLen;
const char* p = record["s"].binData(len);
std::string content(p, iLen);发布于 2012-07-31 01:59:25
.binData()返回一个const char*,所以它应该返回一个指向二进制数据的指针。您只需将其复制到一个缓冲区中,无论是显式分配的缓冲区还是字符串之类的动态缓冲区。
例如:
std::string arrS;
int iLen = 0;
arrS = record.getField("s").binData(iLen);我不确定iLen参数-此模式通常用于传入缓冲区长度的值,并返回复制的字节数,但返回的是docs don't mention it。
如果是这样,您需要分配一个缓冲区:
char arrS[1000];
int iLen = sizeof(arrS);
memcpy(arrS, record.getField("s").binData(iLen));https://stackoverflow.com/questions/11726436
复制相似问题