|
다음과 같은 함수가 있다면
void LineToFn((void (*LineTo)(long x,long y,void *userdata)));
아래에서 mb_hdc가 전역변수이면 문제없지만 지역 변수 일 경우
void * userdata로 접근하는 법이 없나요?(ActiveForm에서 입니다)
activex에서 전역변수로 사용하면 두개 이상이 떴을때 문제가 발생해서 클래스의 지역변수로 사용하려합니다.
void __cdecl LineTo(long x,long y,void *userdata)
{
...
MoveToEx(mb_hdc,(short)x,(short)y,NULL);
...
}
void __fastcall TAtiveFormX::Init()
{
...
LineToFn(LineTo);
...
}
참고로 VC에서는
CMyCtrl* wnd = (CMyCtrl*) userdata;
MoveToEx(wnd->mb_hdc,(short)x,(short)y,NULL);
이런 식으로 접근이 가능했습니다.
|