首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FILETIME创建变量

从FILETIME创建变量
EN

Stack Overflow用户
提问于 2012-03-29 14:53:26
回答 2查看 1.9K关注 0票数 2

我想在c/c++中从一个文件创建一个变体或_variant_t。

基本上,这就是我想要的:

代码语言:javascript
复制
FILETIME ft;  
//Populate ft  
VARIANT vFt;  
VariantInit(&vFt);  
vFt.vt = VT_FILETIME;  

现在,我如何在vFt中设置ft呢?

有谁能帮我一下吗?

谢谢,Saurabh

EN

回答 2

Stack Overflow用户

发布于 2014-05-09 03:04:06

使用InitVariantFromFileTime

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762323(v=vs.85).aspx

希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2016-03-18 07:34:10

对于那些还在寻找的人,你可以尝试Scott的答案。下面是我如何使用ATLComTime.h库完成的,它需要更多的步骤。

代码语言:javascript
复制
FileTime fileTime = yourFileTime;
// dateFileTime will automatically cast to DATE when used as a parameter
COleDateTime dateFileTime(fileTime);  

由于DATE是COM友好的类型,您可以简单地将'dateFileTime‘变量作为方法参数。如果您仍然想使用这个变量,只需将'dateFileTime‘变量设置为一个变量即可。

代码语言:javascript
复制
VARIANT varDate;
VariantInit(&varDate);
varDate.vt = VT_DATE;
varDate.date = dateFileTime;
// Use the varDate varaible
// ... call some method or use locally
// Don't forget to clear the VARIANT from memory after use
VariantClear(&varDate);

在被调用的方法中(仍在C++中),即从日期变量中获取文件。COleDateTime想要给你一个SYSTEMTIME而不是一个FILETIME,所以我们不得不跳过几个圈子。

代码语言:javascript
复制
FILETIME fileTime;
if (variantDateTime.vt == VT_DATE) // only use if DATE was put into a VARIANT
{
  COleDateTime oleDateTime(variantDateTime.date);
  SYSTEMTIME sysTime;
  oleDateTime.GetAsSystemTime(sysTime);
  SystemTimeToFileTime(&sysTime, &fileTime);
}

如果您没有使用VARIANT,那么可以使用DATE变量初始化COleDateTime类型。

代码语言:javascript
复制
COleDateTime oleDateTime(dateVariable);
... // etc as above

如上所述,这比Scotts的工作要多一点,但它是另一种跨越COM接口障碍的FILETIME方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9920448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档