VC6からVC7への移行

[戻る]
らいと 2002/11/06(水) 23:04:00
はじめまして。
本日からVC++.net(VC7)を使っているのですが
VC6からの移行で、どうも型が変わっているらしく
警告がぼこぼこでまくります。

良くは知らないのですが、INT型って使わなくなったんですか?
INT_PTRをINTの変わりに全部使えばよいのかな?
POSITIONは、ULONGLONG?
なんか、全然わかんないです。

やっぱり、全部型を書き換えないとダメなんでしょうか?

いい移行方法、またはここら変の型の情報を教えてください。

よろしくお願いします。

MASATO [E-Mail] [HomePage] 2002/11/07(木) 08:27:16
MFCの関数の戻り値がいくつか変更されていますので、
暗黙の型変換ができなくなり、警告が発生しているようです。
警告を出すレベルも少し変更されているようです。

具体的にどのような警告が発生したのか
警告内容と、その部分のソースコードを記述してみてはいかがでしょうか。

Win32ならばほとんどの場合キャストするだけでなんとかなると思います。

らいと 2002/11/07(木) 09:28:42
ご返答ありがとうございます。

仰るとおりで、MFCで変更された戻り値で警告が出ています。
CListクラスのGetCount()関数等で出ます。

INT_PTRなどは、64bitを視野に入れた型っぽいんですが
安易にキャストしてしまって大丈夫でしょうか?

また、戻り値がINTのままのものもあるのですが
INTとINT_PTRで使用方法って違うんでしょうか?

名前がPTRだからかも知れませんが、いまいち用途が不明です。

よろしくお願いします。

PATIO 2002/11/07(木) 09:50:50
というか、昔からコンパイラのバージョンが上がると警告が出まくるのは
もはや伝統と言うか。(^^;

私は毎回、その膨大な警告と戦って警告が出ないような状態まで変更してしまうことが多いで
す。
禍根を残さないようにいうのが理由です。
MASATOさんを言われていますが、ほとんどの場合はキャストでいけると思いますが、
ほとんどであって全てではないので結局、一つ一つ潰していくしかないと思います。

MASATO [E-Mail] [HomePage] 2002/11/07(木) 21:39:37
INT_PTRは確かに64bitを視野に入れた型みたいですね。
安易にキャストしてしまうとWin32はともかくWin64(?)になったときに
動かなくなるかもしれません。

MSDNにもINT_PTRの説明がありますが、
ポインタが格納できるINT型だと思っています。
たぶんポインタが64bitになったらINT_PTRも64bitになるのではないかと思います。

キャスト以外の回避手段があるならばそちらをお勧めいたします。

私は、CListのGetCountのような場合は、
(アプリケーションの仕様的に)32bitを越える値を持つことは無いと割り切って
さくさくとキャストしてしまっています。

従来、ポインタをINT型にキャストしていた場合は、
安易にキャストをしてしまうと将来痛い目にあいそうなので
キャストは回避した方が良いでしょう。

また、64bit環境で動かすことは諦めると割り切ってしまい、
安易にキャストしてしまうというのも1つの手だと思います。

らいと 2002/11/08(金) 09:03:14
[[解決]]
ご返答ありがとうございます。

MASATOさんの仰るとおりに
ポインタキャストを気おつけてやっていこうと思います。

ありがとうございました。

古いスレッドには追加発言できません。