• Domingo 19 de Mayo de 2024, 08:13

Autor Tema:  Problemas con el parametro de entrada del tipo BSTR  (Leído 1057 veces)

netlan

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Problemas con el parametro de entrada del tipo BSTR
« en: Domingo 21 de Febrero de 2010, 13:00 »
0
Buenas, estoy haciendo una dll con visual c++ 6. El problema es que tengo una funcion con un parametro de entrada del tipo BSTR. Lo que quiero es tratar la informacion que tiene este parametro. Esta informacion es del tipo: sddff|123|ddd, lo que quiero es recuperar lo que hay entre los |. Lo que esta entre las pipes, seran codigos de producto que iran canviando dependiendo de lo que le llega como parametro. Algo no hago bien porque cuando lo estoy probando la dll con visual o me peta o solo me retorna la primera letra. Os muestr el codigo que estoy utilizando:  

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.