Posso acessar uma classe base membros protegidos de uma função estática em uma classe derivad

Tenho um programa em que preciso criar uma classe base que seja compartilhada entre uma dll e algum código de aplicativo. Então eu tenho duas classes derivadas diferentes, uma na dll e uma na aplicação principal. Cada um deles possui algumas funções de membro estático que operam nos dados da classe nase. (Eles precisam ser estáticos, pois são usados como ponteiros de função em outros lugares). Na sua forma mais simples, meu problema é mostrado abaix

class Base {
protected:
  int var ;
};

class Derived : public Base {
  static bool Process( Base *pBase ) {
    pBase->var = 2;
    return true;
  }
};

@ meu compilador reclama que não consigo acessar membros protegidos do pBase, mesmo que o Derived tenha protegido o acesso ao Base. Existe alguma maneira de contornar isso ou estou entendendo algo errado? Posso tornar públicas as variáveis Base, mas isso seria ruim, pois, na minha instância real, são um monte de memória alocada e os semáforos para protegê-la para multithreading.

Socorro

questionAnswers(2)

yourAnswerToTheQuestion