2008-09-15 31 views
4

Server 2008を評価しています。このエラーが発生しています。以前のいくつかのOSでホットフィックスを必要としていたようですが、MSDNでこのエラーが発生しました。他に誰もこれを見た? 32 & 64ビットOSについても同じ結果が得られます。Windows Server 2008:COMエラー:0x800706F7 - スタブが不正なデータを受信しました

コードスニペット:

// DCAPICOM_GroupData 
[ 
     uuid(F1FE2605-2744-4A2A-AB85-1E1845C280EB), 
     helpstring("removed") 
] 

typedef struct DCAPICOM_GroupData { 
     [helpstring("removed")] 
     long    m_lImageID; 

     [helpstring("removed")] 
     unsigned char  m_ucHeadID; 

     [helpstring("removed")] 
     unsigned char  m_ucPlateID; 
} DCAPICOM_GroupData; 
+0

これは実際には一般的なコンピューティングの質問サイトではありません。これはプログラミングに関する質問です。 – GEOCHET

+0

私はOPのプログラムがエラーにぶつかっているので、質問は有効だと思います。しかし、詳細は参考になるでしょう:どのような操作でエラーが発生していますか?それは散発的か反復可能か? –

答えて

2

私たちは、クライアントと最近同じエラーに遭遇した:GroupDataArray VARIANT引数はDCAPICOM_GroupData構造体のエントリを包む変異型の単一次元のSAFEARRAYをラップ

HRESULT GroupStart([in] short iClientId, [in] VARIANT GroupDataArray, 
    [out] short* pGroupInstance, [out] long* pCommandId); 

/DCOM経由で通信するサーバーアプリケーション。ワイヤを横切って(すなわちローカルではなく)マーシャルされたインターフェイスポインタのサイズが変更された(より大きくなった)ことが判明した。 CoMarshalInterfaceなどを使用してコードが特別なマーシャリングを行っているかどうかを確認することができます。

+0

マーシャルを使用していない、ローカルのみを実行しているため、これは当てはまりません。 – creohornet

3

マイクロソフトのサポートケースを開いた後、私自身の質問に答えることができます。これは(今)認識されたバグです。この問題はサーバー側のマーシャリングと関係していますが、サーバーコードが呼び出される前に発生しています。私たちの構造は6バイトですが、このCOM実装では8として解釈されています。マーシャリングは失敗し、これが返されます。回避策は、これに対処するためにService Packがリリースされるまで、構造体に2つの余分なバイトを追加して最大8バイトまで埋め込むことです。まだ失敗したインスタンスはもう実行していませんが、依然として多くのテストがあります。

+2

こんにちは、バグIDは何ですか? –

+0

1783にする必要があります。 –

関連する問題