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

C# DateTime.ToUniversalTime() in C++ Win32

有问题的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字段中。