- ベストアンサー
エラーの原因は?「この関数の定義が見つかりません」
<プログラム環境> 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) をダブルクリックして、関数に移ろうとすると 『この関数の定義(インプリメンテーション)が見つかりません』 というエラーが出ます。 <質問> このエラーは何が原因で出ているのでしょうか?? 宜しければご指摘の程お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ヘッダでの宣言を void Transmit(HANDLE hCom,OVERLAPPED old,unsigned char ucBuf[],DWORD dwByte,CString s); にすればよいと思います。 ちなみにClassViewから関数を追加すれば質問されたような状態にはならないと思います。
その他の回答 (1)
- neKo_deux
- ベストアンサー率44% (5541/12319)
経験上、関数の情報を保持しているデータベースなどが壊れたとか。 クラスメンバの自動表示が出来なくなったり、割と良くある事かと。 取りあえず、プロジェクトをバックアップした上で、 プロジェクト名.ncb プロジェクト名.pdb の2ファイルを削除し、リビルドなどで関数情報を再構築するとか。 プロジェクトのFileビューから、対象ファイルを一旦除外、再度追加とか。
補足
neKo_deux様、有難うございます。 プロジェクト名.ncb プロジェクト名.pdb を削除して、リビルドしたのですが、症状は直りませんでした。 プロジェクトのFileビューから、対象ファイルを一旦削除し、 リビルドしました。リンクエラーが出ました。 そしてプロジェクトにcppファイル新規作成、 元のソースのコピーを貼り付けて、リビルドしてみたのですが、 症状は直りませんでした。 他に試せる方法があれば教えて下さい! 宜しくお願いします。
お礼
itohoo様、有難うございます。 ご指摘いただいた通りにコーディングすると、直りました! これで、ストレスなくプログラミングできます。 本当に有難うございました。