해당 에러는 함수 형이 맞지 않아서 발생하는 에러입니다.
링크를 대충 봤는데요. 아마 저걸 작성할 당시 해당 함수의 형을 찾는게 귀찮아서 물음표로 로 적었을듯 싶네요ㅋㅋ;
Application->OnSettingChange 는 TSettingChangeEvent 형이고
도움말을 찾아보니 TSettingChangeEvent 는 아래와 같은 형태로 되어있네요.
typedef void __fastcall (__closure *TSettingChangeEvent)(System::TObject* Sender, int Flag, const System::UnicodeString Section, int &Result);
자세한건 저도 잘 모르겠고 그냥 AppSettingChange를 아래와 같이 선언하시면 됩니다.
void __fastcall TForm1::AppSettingChange(TObject* Sender, int Flag,
const UnicodeString Section, int &Result)
{
}
빌더이제시작이다 님이 쓰신 글 :
: 안녕하세요. 프로그램 지역설정에서 날짜가 변경되었을 때
: Application->OnSettingChange 이벤트를 이용하여 날짜 관련 에러를 방지하려고 합니다.
:
: 이전에 장성호님이 올린 글을 참조해서 해보려는데 잘 안 됩니다.
:
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=60658
:
: 소스는 아래와 같구요.
:
: void __fastcall TfmMain::FormCreate(TObject *Sender)
: {
: Application->OnSettingChange = AppSettingChange;
: SetDateTimeFormat();
: }
:
: void __fastcall TfmMain::AppSettingChange()
: {
: SetDateTimeFormat();
: }
: void __fastcall TfmMain::SetDateTimeFormat()
: {
: ShortDateFormat="YYYY-MM-DD";
: LongDateFormat="YYYY-MM-DD";
: ShortTimeFormat="hh:mm:ss";
: LongTimeFormat="hh:mm:ss";
: DateSeparator='-';
: }
: void __fastcall AppSettingChange(void);
: void __fastcall SetDateTimeFormat(void);
:
:
: Application->OnSettingChange = AppSettingChange; 이 부분에서 에러가 발생합니다.
: 제가 이벤트 연결하는 방법을 잘 몰라서 그런듯 합니다.
: 컴파일시에 에러코드 같이 올립니다. 도움 부탁드립니다.
: [C++Error] MainForm.Cpp E2304 Cannot convert 'void(__fastcall*(closure)()()'to 'void(__fastcall.....................
: