2011-08-18 96 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传输日期信息的正确方法。 “我问这是因为这种作品,但我也有时会看到一些奇怪的结果” - 它现在起作用了。