10代と話して驚いたこと

<プログラム環境>
Windows XP
VC++6.0
MFC AppWizard(exe)
ダイアログベース

<症状>
ヘッダー
void Transmit(HANDLE,OVERLAPPED,unsigned char[],DWORD,CString);

cppファイル
void CMyDlg::Transmit(HANDLE hCom,OVERLAPPED old,unsigned char ucBuf[],DWORD dwByte,CString s)
{
}
とコーディングしていて、ビルドも実行も全く問題ないのですが、
ClassViewでTransmit(HANDLE,OVERLAPPED,unsigned char[],DWORD,CString)
をダブルクリックして、関数に移ろうとすると
『この関数の定義(インプリメンテーション)が見つかりません』
というエラーが出ます。

<質問>
このエラーは何が原因で出ているのでしょうか??

宜しければご指摘の程お願い致します。

A 回答 (2件)

ヘッダでの宣言を


void Transmit(HANDLE hCom,OVERLAPPED old,unsigned char ucBuf[],DWORD dwByte,CString s);
にすればよいと思います。

ちなみにClassViewから関数を追加すれば質問されたような状態にはならないと思います。
    • good
    • 1
この回答へのお礼

itohoo様、有難うございます。

ご指摘いただいた通りにコーディングすると、直りました!
これで、ストレスなくプログラミングできます。
本当に有難うございました。

お礼日時:2008/07/02 15:24

経験上、関数の情報を保持しているデータベースなどが壊れたとか。


クラスメンバの自動表示が出来なくなったり、割と良くある事かと。

取りあえず、プロジェクトをバックアップした上で、
プロジェクト名.ncb
プロジェクト名.pdb
の2ファイルを削除し、リビルドなどで関数情報を再構築するとか。

プロジェクトのFileビューから、対象ファイルを一旦除外、再度追加とか。

この回答への補足

neKo_deux様、有難うございます。

プロジェクト名.ncb
プロジェクト名.pdb
を削除して、リビルドしたのですが、症状は直りませんでした。

プロジェクトのFileビューから、対象ファイルを一旦削除し、
リビルドしました。リンクエラーが出ました。
そしてプロジェクトにcppファイル新規作成、
元のソースのコピーを貼り付けて、リビルドしてみたのですが、
症状は直りませんでした。

他に試せる方法があれば教えて下さい!

宜しくお願いします。

補足日時:2008/06/25 17:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報