ayuda con este codigo, muy urgente.Gracias
Publicado por netlan (2 intervenciones) el 20/02/2010 20:59:53
Estoy haciendo una dll con visul c++. Hace mil años que no programo con visual c++ 6.0 y tengo el siguiente problema.
Tengo una funcion que tiene como parametro de entrada un codigo, del tipo BSTR. Este codigo necesito obtener una parte del contenido. Me llega algo asi: ssddff$idcode$sdd. Necesito obtener lo que hay entre los simbolos de $, para devolverlo en formato BSTR. Les muestro el codigo que estoy utilizando para que me ayuden no se porque me falla. Al probarlo desde visual esta dll no me retorna correctamente el valor que teoricamente estoy buscando. El codigo es:
BSTR __declspec(dllexport) CALLBACK obtener_datos (BSTR idcode)
{
_bstr_t bstrFinal(idcode); //BSTR-->_bstr_t
char *buff = bstrFinal; ///BSTR-->to C String<-->TCHAR
string str(buff); //C String<->TCHAR-->string //bascic string
string texto;
_bstr_t textfin;
string::size_type inicio = str.find_first_of("|"); //obtengo la posición del primer carácter de control
string::size_type final = str.find_last_of("|"); //obteno la última posición del carácter de control
texto = str.substr(inicio,final); //sustring, del texto que me interesa.
_bstr_t bstrt(texto.c_str()); // asigno el texto calculado a la variable del tipo _bstr
return bstrt;
}
Muchas gracias
Tengo una funcion que tiene como parametro de entrada un codigo, del tipo BSTR. Este codigo necesito obtener una parte del contenido. Me llega algo asi: ssddff$idcode$sdd. Necesito obtener lo que hay entre los simbolos de $, para devolverlo en formato BSTR. Les muestro el codigo que estoy utilizando para que me ayuden no se porque me falla. Al probarlo desde visual esta dll no me retorna correctamente el valor que teoricamente estoy buscando. El codigo es:
BSTR __declspec(dllexport) CALLBACK obtener_datos (BSTR idcode)
{
_bstr_t bstrFinal(idcode); //BSTR-->_bstr_t
char *buff = bstrFinal; ///BSTR-->to C String<-->TCHAR
string str(buff); //C String<->TCHAR-->string //bascic string
string texto;
_bstr_t textfin;
string::size_type inicio = str.find_first_of("|"); //obtengo la posición del primer carácter de control
string::size_type final = str.find_last_of("|"); //obteno la última posición del carácter de control
texto = str.substr(inicio,final); //sustring, del texto que me interesa.
_bstr_t bstrt(texto.c_str()); // asigno el texto calculado a la variable del tipo _bstr
return bstrt;
}
Muchas gracias
Valora esta pregunta


0