Título: porque Salida de cadena distinta? Publicado por: x64core en 24 Octubre 2011, 09:36 am bueno tengo esa incognita miren estos dos codigos uno devuelve en ANSI y otro en UNICODE porque?
practicamente se hace lo mismo :-\ Código
la unica diferencia es el tipo de variable de la direccion de la cadena pero aun asi en el primer codigo pasar de tipo String a las API es pasar la direccion ( sistema BSTR ) y en el segundo codigo se obtiene explicitamente primero la direccion y se le pasa la direccion :P es lo mismo no? :/ pero aun no entiendo porque sale diferente :/ Título: Re: porque Salida de cadena distinta? Publicado por: raul338 en 24 Octubre 2011, 10:54 am Uno nunca lo sabrá :xD
Se llama magia entre vb6 y Windows :P Siempre uso RtlMoveMemory con todos sus parámetros en ByVal y Long, lleno de VarPtr y StrPtr para no tener drama :) Título: Re: porque Salida de cadena distinta? Publicado por: x64core en 24 Octubre 2011, 14:07 pm Se llama magia entre vb6 y Windows :P :xD ... :P vaya vb... ok gracias primo, hermano ;DTítulo: Re: porque Salida de cadena distinta? Publicado por: BlackZeroX en 24 Octubre 2011, 20:04 pm Si pasar una varible string directamente se crea otra en su variacion ANSI si pasas el puntero no se toca la string y se toma la original en su Modo Unicode.
como he dicho anteriormente en las declaraciones apis, si alguno de sus parametros requiere una entra de un puntero para entrada/salida de informacion o un buffer, etc, es mejor usar byval... Dulces Lunas!¡. Título: Re: porque Salida de cadena distinta? Publicado por: x64core en 24 Octubre 2011, 20:07 pm suena interesante tio pero me pongo a pensar que el nombre de la variable es en realidad un puntero al buffer
bueno pensandolo bien entonces para las strings y usar APIs hay dos clases de punteros... :P sino diera error digo :P y los punteros si obtenemos la direccion es distinta :P Título: Re: porque Salida de cadena distinta? Publicado por: BlackZeroX en 24 Octubre 2011, 20:10 pm solo hay punteros y referencias, hay variaciones de puntero a puntero, etc... en las apis ojo.
Es decir, de una manera mas concreta: * Cuando pasas un puntero se pasa en variacion Unicode (no son punteros es la dirrecion). * Cuando se pasa por referencia se crea otra cadena en su variacion ANSI... Dulces Lunas!¡. |