我正在尝试确定要在我的 C++ (Win32) 应用程序上使用的正确类型,该应用程序正在接收返回 C# DateTime.ToUniversalTime()
的 API 调用的返回值。值(value)。
所以我的问题是:
我应该使用 U64 来存储从 c# 函数返回的值..还是应该使用什么正确的 C++ 类型。
The client C++ environment is using
Win32 + DirectX utilizing COM
没有 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
字段即可。