|
제가 질문하고 답변하니 이상하군요..
typedef t_relation (*TCompareFunction)(TObject* Sender, int ColRow,int
: compare1,int compare2);
을 아래와 같이 수정하니 컴파일 에러는 없군요..
typedef t_relation __fastcall (__closure *TCompareFunction)(TObject* Sender, int ColRow,int compare1,int compare2);
달라진점은 크게 __closure가 추가 되었다는 것이죠.. 물론 __fastcall도..
이용한 님이 쓰신 글 :
: 함수를 property를 빼는 구문이 있더군요.. private, public은 생략했습니다.
:
: t_relation = (rel_greater, rel_equal, rel_less);
: TCompareFunction = function(Sender:TObject;
: colrow,compare1,compare2:longint):t_relation of object;
:
: f_compare_col: TCompareFunction;
: property OnCompareRow: TCompareFunction read f_compare_row write f_compare_row;
:
:
: 위의 구문을 다음과 같이 고쳤습니다.
:
: enum t_relation {rel_greater, rel_equal, rel_less};
: typedef t_relation (*TCompareFunction)(TObject* Sender, int ColRow,int
: compare1,int compare2);
: TCompareFunction FCompareCol;
: __property TCompareFunction OnCompareRow={read=FCompareRow,write=FCompareRow};
:
: 그런데 컴파일 해보면 __property에서 "Not allowed type"이라고 에러가 발생합니다.
: 제가 함수 선언을 잘못한 것입니까 아니면 T.T
: 조언 부탁드립니다.
|