2011-08-18 128 views
0

我需要從COM服務器返回日期信息。我在C/C++中看到了IDL中的DATE類型被映射爲double類型。當我回到我會從內部SYSTEMTIME轉換的日期,以便匹配所需的輸出類型這樣的翻番:COM,返回DATE信息

... comIFaceMethod(DATE* result) 

{ 
SYSTEMTIME computed; 
::SystemTimeToVariantTime(&computed, result); 
} 

這是transfering通過COM的日期信息的正確方法是什麼?我問這是因爲這種作品,但我也有時會看到一些奇怪的結果,不知道原因。我最後的選擇是在COM中定義我自己的SYSTEMTIME結構來傳輸結果,但我更喜歡更好的解決方案...

在上面的示例中,我計算「計算」一些其他地方,我也驗證來自SystemTimeToVariantTime轉換的結果

+1

假設您實際給* * computed *變量一個適當的值,是的,這是正確的。不檢查返回值當然是不正確的。 –

+0

@Hans,你的意思是不檢查SystemTimeToVariantTime轉換爲OK,是的,你是對的 – Ghita

回答

0

代碼示例顯示了通過COM傳輸日期信息的正確方法。 「我問這是因爲這種作品,但我也有時會看到一些奇怪的結果」 - 它現在起作用了。