Buenas:
Tengo una aplicación que emplea una dll hecha por mi.
Esta dll realiza unas operaciones interpretando comandos en ascii que se le mandan. Cuando realiza la operación devuelve otro comando con la respuesta.
Para ello he hecho una funcion :
GPROTOCOL_API DWORD Execute(const std::string command,std::string * response)
{
std::string s;
s="config";
if (command.compare(0,s.size(),s)==0)
{
*response="0 OK CONFIG";
int r=0;
return r;
}
}
este cacho de codigo me produce un assert _CrtIsValidHeapPointer al retornar. El cacho de codigo esta en una dll y al debuguear se ejecuta correctamente hasta que llega al return r;
Segun msdn , dice que el acceso a memoria que realizo no esta dentro del heap.
Es debido al puntero que paso como response?
como puedo forzar a la dll a usar el heap del proceso localizador?
normalmente si localizara algo en la dll usaria HeapAlloc pero aqui estoy pasando un std::string estatico desde el proceso que linka la dll.
Gracias.