1

ベンダーの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);

したがって、問題は、xml情報を取得できるようにptrを宣言して渡す方法です(ベンダーのドキュメントは本当に悪いです)。ほとんどの場合、引数は、入力するアプリケーションポインタへのポインタである必要があります。戻り時のメッセージXMLデータポインタ。プログラマーは、返されたvoidポインターを、アプリケーションに適した任意の参照にキャストできます。

4

2 に答える 2

0

さて、あなたはvoidへのポインタをvoidへのポインタとして宣言します:void *ptr;

于 2012-01-06T14:42:35.500 に答える
0

void**参照によってポインタを渡すことを意味します。おそらく、関数はこれを変更して、XMLデータが格納されている場所を指すようにします。したがって、配列ではなくポインタが必要です。

void * ptr;
int size;
getXMLPtr(msg_p, &ptr, &size);
于 2012-01-06T14:46:11.067 に答える