VC6からVC7への移行 – プログラミング – Home

通知
すべてクリア

[解決済] VC6からVC7への移行


らいと
 らいと
(@らいと)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

はじめまして。
本日からVC++.net(VC7)を使っているのですが
VC6からの移行で、どうも型が変わっているらしく
警告がぼこぼこでまくります。

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

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

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

よろしくお願いします。


引用未解決
トピックタグ
MASATO
 MASATO
(@MASATO)
ゲスト
結合: 23年前
投稿: 53
 

MFCの関数の戻り値がいくつか変更されていますので、
暗黙の型変換ができなくなり、警告が発生しているようです。
警告を出すレベルも少し変更されているようです。

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

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


返信引用
らいと
 らいと
(@らいと)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

ご返答ありがとうございます。

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

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

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

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

よろしくお願いします。


返信引用
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

というか、昔からコンパイラのバージョンが上がると警告が出まくるのは
もはや伝統と言うか。(^^;

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


返信引用
MASATO
 MASATO
(@MASATO)
ゲスト
結合: 23年前
投稿: 53
 

INT_PTRは確かに64bitを視野に入れた型みたいですね。
安易にキャストしてしまうとWin32はともかくWin64(?)になったときに
動かなくなるかもしれません。

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

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

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

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

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


返信引用
らいと
 らいと
(@らいと)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

ご返答ありがとうございます。

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました