このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

GetCurrentTime問題

https://msdn.microsoft.com/ja-jp/library/cc429748.aspx :

GetCurrentTime

この関数は使われなくなりました。Win32 アプリケーションでは、GetTickCount 関数、または、レジストリの HKEY_PERFORMANCE_DATA 内にあるカウンタを使ってください。ただし、過去との互換性のために残されています。

このGetCurrentTime関数はもう実体はないのかもしれない。

/c/Program Files (x86)/Microsoft SDKs/Windows/v7.{0,1}A/Include/WinBase.h :

/*
 * Compatibility macros
 */

#define DefineHandleTable(w)            ((w),TRUE)
#define LimitEmsPages(dw)
#define SetSwapAreaSize(w)              (w)
#define LockSegment(w)                  GlobalFix((HANDLE)(w))
#define UnlockSegment(w)                GlobalUnfix((HANDLE)(w))
#define GetCurrentTime()                GetTickCount()

/c/Installed/TDM-GCC-64/x86_64-w64-mingw32/include/winbase.h :

#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
#define GetCurrentTime() GetTickCount ()
#endif

/c/Installed/MinGW/include/winbase.h

#define GetCurrentTime GetTickCount

困るのは、CTime::GetCurrentTimeというMFCのメソッドがある。

windows.h(からインクルードされたwinbase.h)が効いていると、このメソッドがCTime::GetTickCount に置換されて奇妙なエラーとなる。

CPPは名前空間を認識できないで大バカだからこんなことになる。いまだにこの大バカ者に頼っているのがC/C++のほんとに困った所だ。