2008-09-15 52 views
4

我正在評估Server 2008.我的C++可執行文件正在出現此錯誤。我在MSDN上看到了這個錯誤,這似乎需要幾個以前的操作系統的熱修復。其他人看過這個?我獲得了64位操作系統的相同結果。Windows Server 2008:COM錯誤:0x800706F7 - 存根收到錯誤數據

代碼片段:

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

凡GroupDataArray VARIANT參數包裝變種的包裝一DCAPICOM_GroupData結構條目的單維SAFEARRAY:

// 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 2008-09-15 17:52:36

+0

我相信這個問題是有效的,因爲它是運行到錯誤的OP程序。但是更多的細節會有幫助:什麼操作會產生錯誤?它是零星的還是可重複的? – 2008-09-15 19:12:09

回答

2

我們與客戶碰到了同樣的錯誤最近/服務器應用程序通過DCOM通信。事實證明,穿過網絡(即不是本地)的編組接口指針的大小已經改變(變大了)。您可能想要通過CoMarshalInterface等來檢查您的代碼是否正在進行特殊的編組。

+0

我們只運行本地,而不是使用編組,所以這似乎並不適用於我們。 – creohornet 2008-09-16 16:45:00

3

在向微軟開放支持案例後,我現在可以回答我自己的問題。這是(現在)認可的錯誤。該問題與服務器端的編組有關,但在調用服務器代碼之前。我們的結構長度爲6個字節,但是這個COM實現將它解釋爲8,因此編組失敗,這是您返回的錯誤。解決方法,直到一個Service Pack被髮布來處理這個問題,就是將兩個額外的字節添加到結構中,以將其填充到8個字節。我們還沒有遇到更多失敗的實例,但我們仍然有很多測試仍然存在。