剛從Delphi傳到學C++Builder
測驗呼叫函式不能編譯
String SoFind(TFindOptions *Options,THandle *Hde)
{
//函式
}
void __fastcall TForm1::FormClick(TObject *Sender) //呼叫時不能編譯
}
SoFind(FindDialog1->Options,Form1->Handle);
}
//不知道寫錯了那里
uj5u.com熱心網友回復:
堅決消滅0回復貼一下報錯資訊,就在編譯時視窗下方出現的那些
uj5u.com熱心網友回復:
//呼叫時不能編譯這樣籠統的資訊,沒有任何的參考價值。況且到底是編譯期問題還是鏈接期問題,還不一定。以后問問題,建議把詳細的錯誤資訊貼上來,如果想懶一點,哪怕截個圖傳上來。
uj5u.com熱心網友回復:
void __fastcall TForm1::FormClick(TObject *Sender) //呼叫時不能編譯//}
//{
SoFind(FindDialog1->Options,Form1->Handle);
}
uj5u.com熱心網友回復:
估計是String SoFind(TFindOptions *Options,THandle *Hde)這個函式沒有在TForm1的類中宣告,所以不能訪問其中的FindDialog1,Form1uj5u.com熱心網友回復:
FindDialog1->Options是物件而不是指標,而你的String SoFind(TFindOptions *Options,THandle *Hde)中定義的是指標,所以呼叫的時候要傳指標過去:SoFind( &( FindDialog1->Options ), Form1->Handle );平常養成對物件使用參考的習慣就可以少發生這種事,如將上面的函式定義成:
String SoFind(TFindOptions &Options,THandle *Hde),就可以直接傳物件了:
SoFind( FindDialog1->Options, Form1->Handle );
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/105698.html
標籤:基礎類
上一篇:【求助】Access violation, linked terminated問題
下一篇:大家好!
