|
2개의 폼이 있습니다. 각각의 폼에는 그래프를 그리는 컴포넌트가 올려져 있습니다.
한개의 함수가 있습니다. 이 함수는 그래프를 그려주는 기능을 합니다.
여기서, 한개의 함수를 이용하여 함수의 전달인자로 넘어오는 폼에다가 그래프를 그려줄려고 합니다.
밑의 소스를 보게 되면 전달인자로 폼의 주소와 폼 이름을 받습니다. 그리고 함수 내부에서 void형 포인터를 선언한 후,
넘어온 폼 주소를 실제 폼으로 캐스팅하여 vForm에다가 저장했습니다.
이렇게 하면 vForm에는 "frmAscan"또는 "frmFFTAForm"가 들어가 있을거라 생각되고요, 그거에 따라 해당 폼에 그래프를 출력할 거라 생각했습니다.
그런데 프로그램 돌려보면 안됩니다. -_-;;;;;
이런 경우 어떻게 해야 합니까?
void __fastcall TfrmCForm::DrawAscan(DWORD *dwFrm, AnsiString fmName, int X, int Y)
{
void *vForm = NULL;
if(fmName == "frmAscan")
vForm = (TfrmAscan*)dwFrm;
else if(fmName == "frmFFTAForm")
vForm = (TfrmFFTAForm*)dwFrm;
//그래프 출력!
}
|