ベンダのAPIを使用してメッセージのxml部分を取得する際に問題が発生します。 getDestination(加えるvoid void *メッセージ、*先、void *型のサイズ)不透明なポインタを使用してxmlデータを取得する
vendordestinationtype_t dest;
getDestination(msg_p, &dest, 16);
printf("Received message. (Destination: %s).\n", dest.dest);
を生成します:どのような作品の一例として、受信したメッセージを。 (目的地:ある目的地)。
HoeverそれはgetXmlPtrある機能が必要ですメッセージのXML部分取得する(無効のvoid *のMSGを、** 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を渡します(ベンダーのドキュメントは本当に悪いです)。それは、引数がアプリケーションのポインタへのポインタでなければならないと主に言います。プログラマは、返されたvoidポインタをアプリケーションに適した参照にキャストすることができます。
私はキャストがprintfステートメントによって行われると思いますか?私はそういう前にそれをやっていたとき、私が間違っていたことだと思う。ありがとう! – Buraan
@Buraanそれは本当にあなたがそれでやりたいことに依存しますが、ええ。また、呼び出しにキャストできますが、互換性のある型(ポインタへのポインタとポインタへのポインタは2種類あります)が必要です。 –