안녕하세요..
죄송하지만 델파이를 전혀 모르는 저로서는 해결 방법이 없어 이렇게 글을 올립니다.
시급한 문제라..^^
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 파일을 첨부합니다.
|