ページ 11

.演算子 ->演算子 について

Posted: 2008年9月15日(月) 12:42
by konacchi
vc++6.0を使用しています。

雑談的なものです、
構造体や、クラスやクラスのポインタを参照する場合.演算子 ->演算子 を使用しますが、
記述が間違っていないのに その後に続くステータスが出てこない場合があります。
struct {
	int a;
	int b;
	int c;
}Hoge;
Hoge.

........(あれ?出ない(汗))

Hoge.a = 0;

(出ないけど まぁいいか)


コンパイルエラー無し。

といった症状が出ます。
Hoge.の後は出るときもあります、そして出ない時もあります。

vc++6.0を使っている友人に聞いてみたら「うーん安定しないね、俺も出ない時あるよ->とか特にね」
と言われました。

こういう症状が出た事がある方いますか??
vc側に設定があるのか、何が悪いのかいまいち判りません。
もしかしたら記述が悪いのかも・・・。
そんなに困るワケではありませんが、たまにイラッっときます。

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 13:04
by nayo
Hoge.の後がでないときは
その状態でその場所の前(後も?)にエラーがあるときのような気がします

しかし実際どうなんでしょう
私も気になるときがあります

元々Borlandの方を使っていたため
未だにVC++の機能を使いこなせていないところも多々…

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 13:30
by konacchi
nayo様もありますか。

気になりますよね。

エラー無い時もなったりしますし。

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 13:47
by Justy

>記述が間違っていないのに その後に続くステータスが出てこない場合があります

 インテリセンスのことでしょうか?

Visual C++ 6.0 での IntelliSense の制限の一覧
ttp://support.microsoft.com/kb/153284/ja

 うちは VC6ではないですが、候補が出てこないのはよくありますね。

 それでイライラすることはないのですが、逆に出てこられる方がうっとしいことが多いです。
 気持ちよくタイプしてたら突然候補ウインドウが出て、間違って確定してしまったり
巨大なライブラリの名前空間を入力して :: としたら以降の候補リストを出すために
何秒も固まる、とか。

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 16:45
by 御津凪
どうしても出したい場合は、
一旦そのプロジェクトを閉じ、
プロジェクト(ソリューション)のフォルダを開いて、
*.ncb(Intellisense Database) のファイルを削除して、(VC6も同じ拡張子?)
再度プロジェクトを開きます。

すると、ステータスバーにインテリセンスの更新の文字が表示されるので、
終了するまで待ちます。
(大きなプロジェクトや SDK の類を沢山インクルードしている場合は時間がかかります)
(このとき、一時的に CPU と メモリを食うので、貧弱な環境では注意してください)

これで、ちゃんと出ると思います。

プロジェクト作成初期のときは、更新ミスも無く、きちんと表示できるのですが、
バグ取りや大幅な修正ばかりしていると、更新されないことが多くなるようです。
(推測ですが)

また、しばらく入力が無い(2秒前後?)と更新されないので、
出なかったら一回手を止めてみるのも一つの手です。
(大体はこれでも直らないこともありますが)

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 18:56
by nayo
なるほど、参考になります
しかし、製作者側は便利になるようつけた機能でも状況によっては厄介になることもあるものですね

個人的に自動修復の保存で一瞬固まるのが嫌ですね
まぁ以前それで救われたことがあったわけですが

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 19:21
by konacchi
Justy様<
インテリセンスっていうんですか、ためになります。
私は記憶力が乏しいのであれが出てこないと、「なんだっけ??」と定義まで飛んで確認してしまいます・・・笑

御津凪様<
ありがとうございます。
更新の仕方があったんですね、
試してみます。
どうしてもってワケではないですが、私レベルだとやっぱりあって欲しいと思いますので。

nayo様<
もう頭にすべて入っていて、テンポ良く打っているときに出てくるとイラつくって話は聞いたことありますね。
私はというと「でてくれー!頼むからでてくれー!!」と心の中で叫んでいるワケですが 笑

Re:.演算子 ->演算子 について

Posted: 2008年9月15日(月) 23:11
by バグ
とりあえず、VC++6.0用の修復方法を記述しておきますね。
VC++6.0を終了させて、プロジェクトが保存されているフォルダ内の下記の拡張子のファイルを削除してください。

ncb
opt
clw
aps

その後、もう一度VC++6.0を起動して、プロジェクトをリビルドしてください。これで修復できるはずです。

もしそこまでしなくても、とりあえず的にメンバ変数or関数を知りたいだけなんだというのであれば、ローカルに1つオブジェクトを生成してやるコードを記述してやると、どういう訳かそのオブジェクトのメンバは表示されるはずです。

表示されることに慣れていると、急に表示されなくなるとイライラしますよね(笑)