WinXPのVC++6.0です。
かなり基本的な質問ですいませんが、
CAAAView::~CAAAView()
{
delete_ptr(m_datas);
}
例えば、上記のような文があったとして、エラーの内容に’delete_ptr’:定義されて
いない識別子です。
と、あったらたんなるスペルミスという事なのでしょうか??それとも、変数や関数を追
加することで解決するのでしょうか?
コンパイラに対して、「delete_ptr」という関数が何であるかを教えてあげれば解決す
るでしょう。
つまり
> 関数を追加することで解決する
delete_ptr が何なのかは知りませんが。(標準ではないはず)
どっかから拾ってきたソースや、誰かが作ったソースをいじっているのであるならば
どこかに delete_ptr の宣言および定義が存在するはず。
delete_ptrが検索かけてもひっかからないんですよね。ある、ソースを参考にしながら
やっているのですが、そちらでは一箇所にしかdelete_ptrがなく(検索をかけるとそこの
みにヒット)、宣言している気配がありません。参考にしているソースはきちんとコンパ
イルが通っています。
もう少し慎重に探してはみますが…。
また、関数を追加してやってみます。
’delete_ptr’:定義されていない識別子です。
というのはそのまんまの意味で、コンパイラに対してdelete_ptrが何者なのか
予め教えていないという事です。
単なるスペルミスでもありえますし、
インクルードするべきヘッダーファイルがインクルードされていないような場合でも
ありえます。
基本的にはエラーメッセージの内容を素直に受け取って
ありえる可能性を片っ端からチェックしていくというのが普通の方法です。
ある程度慣れてくると自分のミスの傾向が見えてくるので検討がつけやすくは
なりますが、あくまでも傾向なのでそれに拘りすぎると実際には簡単なミスなのに
はまり込んでしまう事もあります。
まあ、コンパイルデバッグは地道にやるしかないですね。
これは誰がやっても同じです。
関数を追加する場合はその関数が何をやっているのか実装を知らないと
追加できませんが、その辺は把握されているのでしょうか?
あと、インクルードファイルの線もありますからそちらもチェックしないと駄目ですよ。
単にコンパイルを通す為だけに関数を追加するような行為は駄目です。
関数を追加するという行為が本当に必要なら問題ないですけれど、
書かれている内容から想像する限りでは必要な行為とは考えにくいです。
> ある、ソースを参考にしながら
> やっているのですが、そちらでは一箇所にしかdelete_ptrがなく(検索をかけるとそこ
> のみにヒット)、宣言している気配がありません。参考にしているソースはきちんとコ
> ンパイルが通っています。
では、デバッガを使って、探してみてはどうでしょうか?
delete_ptr にブレイクポイントを張って、ステップインするとか、コールスタックをさ
かのぼってみるとか。
検索するにしても、delete_ptrを使っているソースだけでなく、includeしているヘッダ
ファイル等も含めて検索しましょう。(普通はVCのgrep検索を使うのですが。)
ビルド時にエラーがでた場合は、質問する前にVC付属のMSDNで
エラーを検索しましょう。
アルファベット1文字の数字4桁を調べれば説明がでています。
今回は「C2065」だと思います。
>delete_ptr
が何であるのか不明なら
>CAAAView::~CAAAView()
は何をすべき関数なのか考えれば良いではないでしょうか?
>m_datas
を何らかの状態にする事を目的としてると思われます
他人が「delete_ptr」どういう目的で作った関数なのか考えると
代替を自分で用意すると考えても良いのではないでしょうか?
とりあえづ、コンパイルを通せなければ、実行デバックはありえませんからね
ダミー作って、コールスタックするのも良いかもしれませんね
PATIOさん、ヘッダーファイルの方も含めて検討、調査してみます。確かに、さっ
きまで他のエラーが出ていた箇所は簡単なミスが大半でした(入力ミスなど)
その関数が何をしているものなのかは把握しています。また、関数の追加の必要性がな
いのなら無駄な追加はさけるようにしていきたいです。
Blueさん、検索を他にもヒットするようにしていきたいとおもいます。普通のツールバ
ーにある検索窓とは違うのでしょうか?
ITOさん、さっそくやってみましたが、役立ちました。今後はそうしていきたいです。
woodさん、コンパイルのできる方でデバックしてみたいと思います。
> Blueさん、検索を他にもヒットするようにしていきたいとおもいます。普通のツール
> バーにある検索窓とは違うのでしょうか?
「ファイルから検索」ダイアログを出現させ、検索ボタンで検索するのであればそれで
OKです。
ダイアログバーのコンボボックスに文字だけ入れて F3 検索の場合は開いているソース
しか検索しませんので。
どうも、間違えている方が多いようですので指摘しておきます。
> デバック
デバッグですよ。(Debug)バグを取り除く作業。
~~
>「ファイルから検索」ダイアログを出現させ、検索ボタンで検索するのであればそれで
OKです。
そうならばいつも使っているものですね。
デバッグとデバッガですね。
問題のエラーはまだ解決しませんね。そこのエラーさえ消えればコンパイルできるんで
すがね…。がんばります。
解決しました。
関連のヘッダーファイルをたどっていったらぬけているものがありまして、追加するこ
とでエラーがなくなりました。
他のエラーも単純な大文字小文字の入力間違い等でした。
今回も大変役にたち、勉強になりました。これからのこういったエラーは解決していけ
そうです。
ありがとうございました。