通过不透明指针获取xml数据

时间:2012-01-06 14:38:43

标签: c++ xml opaque-pointers

我遇到了使用供应商的api检索邮件的xml部分的问题。作为一个有效的例子: getDestination(void * message,void * destination,void * size)

vendordestinationtype_t dest;
getDestination(msg_p, &dest, 16);
printf("Received message. (Destination: %s).\n", dest.dest);

生成:收到消息。 (目的地:某个目的地)。

要检索消息的XML部分,它需要一个函数getXmlPtr(void * msg,void ** xml_ptr,void * xml_length)

char ptr[10000];
int size;
getXmlPtr(msg_p, (void**)&ptr, &size);
printf("Received message. (XML: %s).\n", ptr);

所以问题是,如何声明和传递ptr以便我可以获取xml信息(供应商的文档非常糟糕)它主要说该参数应该是指向应用程序指针的指针在返回时填写消息XML数据指针。程序员可以将返回的void指针强制转换为适合应用程序的任何引用。

2 个答案:

答案 0 :(得分:0)

好吧,你将指向void的指针声明为指向void的指针:void *ptr;

答案 1 :(得分:0)

void**表示您通过引用传递指针;据推测,该函数将修改它以指向XML数据存储的任何位置。所以你需要一个指针,而不是一个数组:

void * ptr;
int size;
getXMLPtr(msg_p, &ptr, &size);