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

Obtaining xml data through an opaque pointer

本文关键字:xml 数据 获取 指针 不透明      更新时间:2023-10-16

我在使用供应商的api检索消息的xml部分时遇到问题。作为工作原理的示例:getDestination(void*消息,void*目的地,void*大小)

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指针强制转换为适用于应用程序的任何引用。

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

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

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