Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我怎样才能减两次?_C++_Windows - Fatal编程技术网

C++ 我怎样才能减两次?

C++ 我怎样才能减两次?,c++,windows,C++,Windows,我试图在windows中以毫秒为单位获取运行时间。我发现的唯一方法是使用FILETIME结构获得1601年以来的100纳秒数。但是FILETIME结构将值存储在两个变量中,我想知道如何将这两个结构减去,除以10000(以获得毫秒),然后将结果存储在单个变量中 我用C++与Visual Studio 2008 Express版 < P>阅读文档: 不建议您从FILETIME结构中加减值以获得相对时间。相反,您应该将文件时间的低阶和高阶部分复制到一个结构中,对QuadPart成员执行64位算术,并将

我试图在windows中以毫秒为单位获取运行时间。我发现的唯一方法是使用FILETIME结构获得1601年以来的100纳秒数。但是FILETIME结构将值存储在两个变量中,我想知道如何将这两个结构减去,除以10000(以获得毫秒),然后将结果存储在单个变量中 我用C++与Visual Studio 2008 Express版

< P>阅读文档:

不建议您从FILETIME结构中加减值以获得相对时间。相反,您应该将文件时间的低阶和高阶部分复制到一个结构中,对QuadPart成员执行64位算术,并将低阶部分高阶部分成员复制到文件时间结构中

FILETIME ft1;
FILETIME ft2;

int iDifferenceInMS = (*((ULONGLONG*)&ft2) - *((ULONGLONG*)&ft1))/10000;

这里还有一个数字(
ULARGE\u INTEGER
结构的
QuadPart

编程语言?框架?哦,对不起,我以为我把它放了。我用VisualStudio 2008 Express Edithimo使用C++,这是一个完全合法的问题和答案。应该重新打开。这个问题应该重新打开。好的,谢谢,问题解决了。但是它说,只有当编译器支持内置64位整数时,才能使用QuadPart。Visual studio支持它,但当我制作可执行文件时,它会在任何安装了windows的系统中工作吗?根据定义,可执行文件本身不再依赖于编译器。但我的意思是,即使它在32位计算机上运行?。我不知道这件事是不是真的。CPU或操作系统的地址宽度与它是否能够对更大的数字进行算术无关。这实际上可能非常糟糕。文件时间是32位对齐的,而不是64位对齐的。这意味着,这取决于编译器将变量放在内存中的位置,也取决于系统。这意味着在某些机器上运行时可能会崩溃。你不想要这种悲伤。另一方面,ULARGE_整数需要64位对齐,因此不会出现这些对齐错误。