我想確定正確的類型使用我的C++(Win32)應用程序接收返回一個C#DateTime.ToUniversalTime()
值的API調用返回。C#DateTime.ToUniversalTime()在C + +中Win32
所以我的問題是: 我應該使用U64來存儲從c#函數返回的值..或什麼是正確的C++類型使用。
客戶端C++環境下使用利用COM
沒有CLR
的Win32 + DirectX的,沒有WinRT中,沒有CLI
我想確定正確的類型使用我的C++(Win32)應用程序接收返回一個C#DateTime.ToUniversalTime()
值的API調用返回。C#DateTime.ToUniversalTime()在C + +中Win32
所以我的問題是: 我應該使用U64來存儲從c#函數返回的值..或什麼是正確的C++類型使用。
客戶端C++環境下使用利用COM
沒有CLR
的Win32 + DirectX的,沒有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
字段中。
FileTime不是日期時間。我需要返回DateTime ....我的客戶不只是C++應用程序。我在想什麼? – 2014-10-29 22:25:54
@SDDeveloper如果API正在返回.NET DateTime對象,那麼您別無選擇,只能使用該對象。這個答案只是給你一個選擇,一旦你有了它,該怎麼做。 – 2014-10-29 22:36:47
@SDDeveloper:您的問題意味着您在Win32應用程序中獲得了DateTime對象,並且想知道如何處理它。如果這不是你問的問題,你需要提供更多的細節。 – 2014-10-29 22:45:25
自定義CLR主機? COM? C++/CLI? WinRT的?與託管代碼互操作的方式不止一種,您必須明確。發佈一個片段。 – 2014-10-29 22:41:47
Win32。 DirectX利用COM - 沒有CLR,沒有WinRT! – 2014-10-30 14:20:46