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

Re: [MD:7296] WINVER は明示的に定義すべき?



結論からいうと、わりと賛成です。

>>>>> On Thu, 27 Apr 2006 22:32:01 +0900,
>>>>> 三好 == MIYOSHI Masanori wrote,

三好> WINVER を Meadow 側で明示的に定義すべきでしょうか?
三好> [meadow-develop: 4657] でも議論されたのですが、はっきりしないまま
三好> で終わったので再度議論しましょう。

三好> WINVER に対する私の理解は以下の通りです。

三好> (1) WINVER は、作成しようとしている実行形式が実行可能なプラットフォー
三好>     ム(OS)を決定する。
三好> (2) コンパイル環境によって WINVER のデフォルト値は異なる。実行環境に
三好>     は関係ない。

三好> 以下、これが正しいとして話を進めます。

三好さんが考えてる事は、以下のページでの内容と同じっぽいですね。
http://homepage1.nifty.com/kazubon/progdoc/tclock/oldwin.html


WINVER の使い方は間違ってないだろうと思います。

WINVERを古くするというのは、ヘッダ定義レベルで自身に制約を課してコンパイ
ラの補助を得るというのが目的であり、自分自身で使用できるAPIを選択して使う
分にはWINVERを古くするのは必須ではないだろうと自分では理解しています。
正しいところは知らないですが。

言い替えるとWINVER を定義することは、古いVisualStudio(というかSDK)を使い
続けている状況をヘッダレベルでエミュレートする(知らないふりをする)みたい
なものだと思ってます。


で、古いWindows (win95, etc)でも使えるAPIを自分で責任を持って使ったとして、
それはMeadow でのやりかたに相当しますが、WINVER が新しい状態でコンパイル
したことで害を生じるかという件については、私は(やってないので)経験がなく、
また、そういう記事は目に入って来た覚えもありませんです。


三好> (1)を考えると、WINVER に 0x0400(Windows95) を明示的に指定すべきか
三好> なと思います。Meadow は Window95 以降をサポートすることになってい
三好> るからです。

上述のように定義しないとダメという事はないと思っていますが、コンパイラの
補助が得られるという点で、定義するのがよいように私も思います。

emacs コードにおいて、それを定義する事でどれほどの修正を要するかは試して
見ないと。その結果にもよるでしょうけど、結構すごい結果になりそうな...

あと、cygwin/mingw 方面ではWINVER は無いにしても相当する何かがあるのか気
になる所。Win32 API set を示す番号はあっても良さそうに思うのですが、
Microsoft がその当たりをきっちりと定義していなさそうなので無理かもな。

--- Regards,
 Shun-ichi Goto  <gotoh@xxxxxxxxxxx>
   R&D Group, TAIYO Corp., Tokyo, JAPAN