• ベストアンサー

エラーの原因は?「この関数の定義が見つかりません」

<プログラム環境> 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) をダブルクリックして、関数に移ろうとすると 『この関数の定義(インプリメンテーション)が見つかりません』 というエラーが出ます。 <質問> このエラーは何が原因で出ているのでしょうか?? 宜しければご指摘の程お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
noname#75489
noname#75489
回答No.2

ヘッダでの宣言を void Transmit(HANDLE hCom,OVERLAPPED old,unsigned char ucBuf[],DWORD dwByte,CString s); にすればよいと思います。 ちなみにClassViewから関数を追加すれば質問されたような状態にはならないと思います。

meeyooyoo
質問者

お礼

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

その他の回答 (1)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

経験上、関数の情報を保持しているデータベースなどが壊れたとか。 クラスメンバの自動表示が出来なくなったり、割と良くある事かと。 取りあえず、プロジェクトをバックアップした上で、 プロジェクト名.ncb プロジェクト名.pdb の2ファイルを削除し、リビルドなどで関数情報を再構築するとか。 プロジェクトのFileビューから、対象ファイルを一旦除外、再度追加とか。

meeyooyoo
質問者

補足

neKo_deux様、有難うございます。 プロジェクト名.ncb プロジェクト名.pdb を削除して、リビルドしたのですが、症状は直りませんでした。 プロジェクトのFileビューから、対象ファイルを一旦削除し、 リビルドしました。リンクエラーが出ました。 そしてプロジェクトにcppファイル新規作成、 元のソースのコピーを貼り付けて、リビルドしてみたのですが、 症状は直りませんでした。 他に試せる方法があれば教えて下さい! 宜しくお願いします。

関連するQ&A

専門家に質問してみよう