初めまして。書籍を参考にしながら独自コードに直している間につまづきました。
static修飾子について質問させてください。

static修飾子をつけた同じクラスのメンバにアクセスさせると、
コンパイル時にリンクエラーになります。
参考にした書籍にはそのように載っているので、何か条件があるのだと思いますがわかりません。
何から疑っていったら良いでしょうか。
具体的には、下記のようなコードの場合にエラーになります。

class CWindow {
public:
  HWND RegistWindow(char* wndName, char* wndTitle, int posXX, int posYY);
protected:
  static LRESULT CALLBACK _WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
  static CWindow* m_static;
};

LRESULT CALLBACK CWindow::_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
  CWindow* p = m_static;  // こいつがいけないらしい
}

HWND CWindow::RegistWindow(char* wndName, char* wndTitle, int posXX, int posYY) {
  m_static = this;  // これもいけないらしい
}