C소스 에 해당하는 부분인데요...
m_nDisplayTimerID = timeSetEvent(1000/(frame_rate+2), 0, FrameDisplayProc, (DWORD)this, TIME_PERIODIC);
여기에서
FrameDisplayProc 이 부분이 콜백함수 이더군요... 아무래도 타임이벤트이니 그럴거라고 생각합니다..
void CALLBACK FrameDisplayProc(UINT uID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
CSearchFileDlg* pSearch = (CSearchFileDlg *)dwUser;
if ( pSearch == NULL || pSearch->m_bPause == true )
{
return;
}
pSearch->FileRead();
}
해당 콜백 함수의 부분인데요.. 정말 단순 한... 말그대로 FileRead(); 를 실행하기 위한 부분이더군요...
그래서 이걸 델파이로 변환해봤습니다.
m_nDisplayTimerID := TimesetEvent(1000 div (frame_rate+2), 0, @FrameDisplayProc, 0, TIME_PERIODIC);
procedure Tform1.FrameDisplayProc(uID : UINT; uMessage : UINT; dwUser, dw1, dw2 : DWORD);
stdcall;
begin
File_Read();
end;
이렇게 말이죠... 흐음.. 그런데.. 계속 @FrameDisplayProc 인자 부분에서 오류가 납니다..
[Error] RawPlayer.pas(129): Variable required 이렇게 말이죠.. ^^;;
제가 콜백함수에 대한 개념도 제대로 없고... 잘 몰라서..
이렇게 단순 컨버팅만 해놨는데요.. 혹시 어떤게 문제인지 좀 알려주시면 감사하겠습니다..ㅠㅠ
procedure FrameDisplayProc(uID : UINT; uMessage : UINT; dwUser, dw1, dw2 : DWORD); stdcall;