what visual studio c++ mfc vc6

c++ - visual - ¿Cómo hacer un diccionario de objetos de sincronización?



mfc windows (1)

Lo que necesito es algo como std::map<std::string, CCriticalSection> pero CCriticalSection no se puede copiar. En lugar de CCriticalSection , pensé que podría usar CRICITAL_SECTION pero tampoco es posible copiar o mover objetos de este tipo . Debido a que es un proyecto muy antiguo, tengo restricciones para usar MFC y VC6. Me gustaría acceder a los objetos de sincronización de la siguiente manera (el siguiente código no funciona y es solo una idea de cómo me gustaría usar el dicionario):

// global variable std::map<std::string, CCriticalSection> csec; unsigned int somefunc(std::string ip) { CSingleLock lock(&csec[ip], TRUE); // do something }

Entonces mi pregunta es, ¿cómo hacer un diccionario de objetos de sincronización usando MFC y VC6?

¡Gracias por sus respuestas!


Use un mapa de punteros a secciones críticas:

std::map<std::string, CCriticalSection *> csec; // add csec["key1"] = new CCriticalSection(); // access CSingleLock lock(csec[ip], TRUE); // don''t forget to delete after use for (std::map<std::string, CCriticalSection *>::iterator i = csec.begin(); i != csec.end(); ++i) delete i->second;