-1

win32 APIのUNICODEとANSIでこれを理解するのにまだ問題があります..

たとえば、私はこのコードを持っています:

SYSTEMTIME LocalTime = { 0 };
GetSystemTime (&LocalTime);
SetDlgItemText(hWnd, 1003, LocalTime);'

これにより、タイトルにエラーが発生します。

また、「setdlgitemtext」の後に W が自動的に追加されることにも言及する必要があります。おそらく VS の一部のマクロです。

誰かが私のためにこれを明確にすることができますか?

4

1 に答える 1

1

C または C++ では、任意の構造体を取得して、文字列を期待する関数に渡すことはできません。最初にその構造を文字列に変換する必要があります。

Win32 関数は、現在のシステム ロケール規則に従って、a を文字列に変換するために使用できGetDateFormat()ます(最初のものは「日付」の部分を行い、2 番目のものは「時間」の部分を行います)。GetTimeFormat()SYSTEMTIME

例えば、

SYSTEMTIME LocalTime = { 0 };
GetSystemTime (&LocalTime);
wchar_t wchBuf[80];
GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &LocalTime, NULL, wchBuf, sizeof(wchBuf) / sizeof(wchBuf[0]));
SetDlgItemText(hWnd, 1003, wchBuf);
于 2013-08-14T21:40:14.870 に答える