C/Visual C - String y string

 
Vista:
sin imagen de perfil

String y string

Publicado por Eduardo (17 intervenciones) el 17/10/2006 22:28:52
Hola, hace un tiempo me di cuenta de que la clase string de c++ estandar y la clase String de Visual Studio .Net son algo incopatibles.

string --> es un arrgeglo de char(a groso modo)
String --> es un arreglo de wchar

String de .Net puede recibir char para crear un objeto, curiosamente los de microsoft no hicieron un funcion para convertir de char a wchar o de String a string (que yo sepa), no habira problema si no fuera que los controles visuales utilizan String.

Yo quiero utilizar el string estandar, pero no se si habra una funcion que convierta de String a string.

Ya habia hecho una, pero el string resultante queda con vasura.

¿Alguien puede ayudarme?

¡Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:String y string

Publicado por fernando.gomez (1603 intervenciones) el 18/10/2006 01:55:41
std::string es ANSI C++. System::String es C++ administrado. Mala cosa si mezclas ambas. A menos que emplees C++/CLI.

Efectívamente, System::String es una clase que envuelve los caracteres, pero técnicamente no es un wchar_t -ese tipo de dato existe como tal en ANSI C++- sino es un tipo de dato que en C++ bajo Windows se conoce como BSTR. Esto es así porque las cadenas de texto que emplea COM son las BSTR (estas cadenas tienen la propiedad de que pueden tener caracteres nulos, y terminan cuando se encuentran dos caracteres nulos). Y .NET es compatible con COM por definición. De ahí el problema.

Yo creo que deberías evitar mezclar código administrado con código no administrado en cualquier versión de C++ que no sea C++/CLI (Visual Studio 8) que fue hecho ex profeso. Pero bueno, por ahí ATL define unas funciones llamadas OLE2T y T2OLE. No recuerdo en qué header se definen (Google al rescate), pero probablemente estas te puedan servir. Estas funciones convierten entre LPTSTR (char o wchar_t, dependiendo de si tienes definido el símbolo UNICODE y _UNICODE) y BSTR.

En cualquier caso, postée una pregunta en algunas listas de correo a las que estoy subscrito, si me contestan algo te aviso.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:String y string

Publicado por Eduardo (1 intervención) el 18/10/2006 02:14:34
Muchas gracias, tu informacion es muy util.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Encontre la Respuesta :D

Publicado por Eduardo (17 intervenciones) el 30/10/2006 00:02:41
Miren ----------------------------->>>>>>>>>>>>>>>>

http://support.microsoft.com/default.aspx?scid=kb;es;311259&sd=msdn
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar