Vale, vamos avanzando, habia que añadir esto:
using std::string;
using std::cout;
using std::endl;
Ahora si me devuelve la posicion con:
cout << endl << L"INFO: begin_pos: " << begin_pos;
cout << endl << L"INFO: end_pos: " << end_pos;
Ahora solo falta extraer la cadena, he probado con
wprintf(L"\nINFO: Nombre del perfil: ", extract);
Pero no devuelve nada.
Edito:Bueno, esto va mejorando.. Ahora ya me muestra algo, pero parece que por algun motivo, no se selecciona bien la longitud de los datos que tiene que extraer y me muestra mas caracteres de los que deberia:
El comienzo lo hace bien ya que se puede ver que comienza a extraer desde "MiRed", pero como digo, la longiud de los datos que captura no es la correcta, deberia capturar solo hasta "</name>", quedando en consola solamente "MiRed"
Este es el codigo que utilizo:
int size = 1000;
std::string text(profBuffer, profBuffer+ size);
std::string begin_text("<name>");
std::string end_text("</name>");
size_t begin_pos = text.find(begin_text) + begin_text.length();
size_t end_pos = text.find(end_text);
std::string extract = text.substr(begin_pos,end_pos);
const char* NombrePerfil = extract.c_str();
std::cout << NombrePerfil << std::endl;
Edito de nuevo:Pues ya esta resuelto, con tantos cambios habia olvidado reemplazar otra vez la linea que me dijiste ayer:
std::string extract = text.substr(begin_pos,end_pos);
Por
std::string extract = text.substr(begin_pos,end_pos-begin_pos);
Una ultima pregunta..
Es posible guardar los datos extraidos en una variable, para utilizar posteriormente esos datos sin tener que volver a consultar el perfil xml?