procedure CallbackFunc(index:integer); cdecl;
하심이~
주성환 님이 쓰신 글 :
: 안녕하세요..
: 죄송하지만 델파이를 전혀 모르는 저로서는 해결 방법이 없어 이렇게 글을 올립니다.
: 시급한 문제라..^^
:
: VC2008을 이용하여 DLL을 만들었습니다.
: DLL을 3가지 사용하는데
: test1.dll, test2.dll, test3.dll 이렇게 3개를 만들고
:
: 종속성은 test1.dll이 test2.dll을 종속하고 test2.dll은 test3.dll을 종속하여
: 사용자가 test3.dll의 함수만 사용하면 되는데요..
:
: test3.dll에서 사용자 정의 콜백함수를 사용하기 위해 다음과 같이 선언했습니다.
:
: extern "C" __declspec(dllexport) BOOL ExecuteTest3(LPVOID lpCallbackFunc);
:
: -> LPVOID lpCallbackFunc에는 응용에서 사용할 콜백 함수
: void CallBack(int nIndex) 형식의 함수를 넘겨주면 됩니다.
:
: test1.dll내부에 있는 쓰레드에서 콜백함수에 0~99까지의 인덱스를 순차적으로 넘겨주면 되는 테스트 프로그램인데
: MFC에서 응용프로그램을 만들어서 테스트한 결과 0~99까지 순차적으로 인덱스를 받아옵니다.
:
: 하지만 델파이로 테스트한 결과 access violence가 발생합니다.
:
: 델파이로 응용프로그램을 만들때 어떻게 콜백함수를 만들어 VC++에서 만든 DLL에 삽입하는지
:
: 부탁드립니다.
:
: 테스트용 dll 파일을 첨부합니다.
|