- 締切済み
クラスのメンバになってくれません!
クラスに変数名・関数名を入れれば自動的にクラスのメンバとしてくれるはずですよね。だけど、クラスメンバにしてくれません。 なぜでしょうか? たすけてください!おねがいします!
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
予想ですが、開発ツールのバグか、あるいは劣悪な仕様のいずれかだと思います。 ベンダに問い合わせした方がよいでしょう。
- sakusaker7
- ベストアンサー率62% (800/1280)
今新しくプロジェクト(MFCを使用しないWindowsアプリケーション)を作成して、 適当にクラスを定義してやってみましたが、ツールチップでメンバー変数の名前やメンバー関数の名前がちゃんとでてきましたよ。 これまでは動いていたわけですから、何の条件もなしに他の人のところで再現するとも思えないのですが… #4さんのいう.pdbファイルはプロジェクトのディレクトリと同じレベルにありますね。 sample ← プロジェクト本体のあるディレクトリ sample.pdb sample.sln ← ソリューションファイル
お礼
もうあきらめます;;
補足
問題を発見したプロジェクト内にある、別のクラスで新たにメンバ関数を加えてみました。 その結果正常にメンバ関数として認識してくれました。 ということは、問題のクラスが書いてあるソースに問題があるようです。 ソースコードがどういった場合にこのような事が起きるのでしょうか?
- neKo_deux
- ベストアンサー率44% (5541/12319)
クラスの情報を別途保存しているデータベースが破損しているとか? > this->メンバ変数 としますと、エラーがでます。 VCのアプリケーションのエラーなのか?コンパイルのエラーなのか?エラーメッセージは何なのか? > VCの雛形でも同じ症状がでるのですから。 新規にプロジェクトを作成した場合は? うろ覚えですが、VC++6.0の場合ですと、.ncbのファイルともう一つ.pdbのファイルを削除とかで再作成されたような? 削除するとアレですから、タイムスタンプの新しいそれらしいファイルを移動してみるとか。
お礼
もうあきらめます;;
補足
新たに雛形を作成して試してみた結果問題は症状は発生しませんでした。
- haratom
- ベストアンサー率36% (15/41)
開発環境はどういったものをお使いでしょうか? 「自動的」というのは、開発環境が自動的にメンバをリストに表示する、といったような意味ですか?
お礼
もうあきらめます;;
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
症状の再現できるソースコードを補足して下さい。 あと、試したこと、こうなるはずだが、結果がこのようになる のように説明を補足して下さい。
お礼
もうあきらめます;;
補足
どのプロジェクトも同じ症状がでますので、 ソースコードは関係ないと思います。 VCの雛形でも同じ症状がでるのですから。
- sakusaker7
- ベストアンサー率62% (800/1280)
どのようにクラスを定義して、どのような動作をしているのかといった 情報は出せませんか? コンパイルエラーが出るとか、特定のメンバーにアクセスできないとか。 「クラスメンバにしてくれません」だけではなんとも判断できません。
お礼
もうあきらめます;;
補足
VC++ 2003.NET を使用しています。 数日まえから一つのオブジェクトを制作していました。 そして現在までメンバ変数が3つ、メンバ関数4と順調につくれていたのですが… 本日クラスの定義がしてあるヘッダファイルにメンバ変数・関数を新たに加えても、 クラスのメンバとして認識してくれなくなったのです。 仮に新たにメンバ関数を加えたとしてソースファイルにメンバ変数をいれてもローカルと認識してしまい、メンバ変数が使えません。 メンバ関数にカーソルを当てても普段は 「引数の型 クラス名::メンバ関数名(引数・・・・)」 と表示されるのですが、今回は、 「int 関数名」 と表示されるのです。 this->メンバ変数 としますと、エラーがでます。 試しに別のプロジェクトでもメンバ関数を加えてみましたが、 同じようにメンバ関数として認識してくれませんでした。 解決方法を探っていますが、このようなおかしな現象は ぜんぜん解決方法がみつかりません。 ですので、私よりVCを使っていらっしゃる皆さんに助けを求めています。 どうかお願いします。
お礼
もうあきらめます;;
補足
メイン関数として定義したのが、どうやらグローバル変数とされて今っているようです。 staticをつけたコールバック関数が含まれています。