[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:7127] 古いコンパイラでも Meadow を make する会



北口です。
今年もよろしくお願いします。

> 白井@古いコンパイラでも Meadow を make する会会員です。
> 
> 今年もよろしくお願いします。(__)
> 
> rev 4005 での変更ですが、VC++ 6.0 は ULONG_PTR を持っていないの
> で、mw32term.h で
> 
> #ifndef ULONG_PTR 
> #define ULONG_PTR       ULONG 
> #endif 
> 
> としておきました。なにか勘違いしていたら指摘してください。 

VS.NET2003のヘッダを見ると、

#if defined(_WIN64)
〜〜〜
    typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
〜〜〜
#else
〜〜〜
    typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
〜〜〜
#endif

となっています(_W64は、Win64コンパイル時のチェック用みたいなので、
無視してください)。

ですので#ifndefでは駄目で、さらにCygwin側(ULONG_PTRを持っている
ようです)も考慮すると、

#if !defined(__GNUC__) && _MSC_VER <= 1000    ←VC6ってこれぐらいでしたっけ?
    typedef unsigned long ULONG_PTR, *PULONG_PTR;
#endif

という感じでしょうか?

# __GNUC__より__CYGWIN__の方がいいのか、とか、Cygwin側の話は
# よくわかっていませんが。


--
Shuichi Kitaguchi // kit@xxxxxxxx / ki@xxxxxxxxxxxxxx