클래스가
static LRESULT CALLBACK 함수명(); 이라는 멤버함수를 가지고 있습니다.
이 정적함수속에서 일반 멤버변수를 호출하였더니,
컴파일시에 비정적멤버를 잘못호출하였다는 에러가 뜹니다.
왜 에러가 뜨는건지. 자세히 설명해 주실 수 있으신지요..
감사합니다.
///////////////////////////////////////////////////////////////////////////////////
정적 함수란 클래스가 존재하지 않아도 호출이 가능한 함수입니다. [출처] [GPG] 비정적 멤버 함수를 잘못 호출했습니다.|작성자 나디아
그런데 정적 함수 속에서 인스턴스가 생성되지도 않은 개체의 비정적 멤버 함수를 호출했으니
컴파일 에러가 나는건 당연지사입니다.
그런 에러 해결법을 위해서는...
static 멤버 변수로 자기 자신에 대한 포인터를 두거나, 혹은 매개변수로 전달을 받거나..할 수 있겠네요.
class Test
{
public:
........
........
static LRESULT CALLBACK CallBackFunc()
{
if( _This == NULL) _This = new _This;
...
....
return S_OK;
}
private:
static Test* _This;
}