C# DateTime.ToUniversalTime() in C++ Win32
本文关键字:in C++ Win32 DateTime ToUniversalTime | 更新日期: 2023-09-27 18:28:25
我正在尝试确定在C++(Win32)应用程序上使用的正确类型,该应用程序正在接收返回C#DateTime.ToUniversalTime()
值的API调用的返回。
所以我的问题是:我应该使用U64来存储c#函数的返回值吗。。或者使用什么是正确的C++类型。
客户端C++环境正在使用
利用COM 的Win32+DirectX
没有CLR,没有WinRT,没有CLI
有问题的API实际返回了什么?ToUniversalTime
方法返回另一个DateTime
对象。如果您想在Win32 API中使用它,您需要将其转换为FILETIME
结构,如下所示:
ULARGE_INTEGER uli;
uli.QuadPart = DateTime->ToFileTime();
FILETIME ft;
ft.dwLowDateTime = uli.LowPart;
ft.dwHighDateTime = uli.HighPart;
然后,您可以像往常一样将FILETIME
转换为SYSTEMTIME
:
SYSTEMTIME st;
FileTimeToSystemTime(&ft, &st);
如果API方法返回long long
或类似的值,您可以简单地将其复制到上面显示的uli.QuadPart
字段中。