Simplemente duplica la cadena almacenada en una variable de tipo Variant... No tengo aquí VB6 pero este código debería de llamarla:
Código
Dim a AsVariant
a = "Test"
MsgBox CStr(a)
Imagino que sin CStr() también se haría el casting implícito pero sin poder compilarlo ni idea... El compilador de VB6 es tan estúpido que siquiera eliminará la variable innecesaria jaja
Por cierto, el valor que te retorna es el tamaño de la cadena copiada devuelto por __vbaStrVarCopy()
« Última modificación: 17 Noviembre 2013, 18:19 pm por Karcrack »
__vbaStrVarVal convierte un valor string en numero. Recibe 2 parametros:
El primero es un ptr a la variable variant (tipo string) que se convertira en numero. El segundo es un ptr que PARECE ser siempre 0.
El resultado se devuelve en eax.
Como el parametro a convertir es un variant string, el valor real del string (el que se convertira) esta almacenado 2 DWORD's despues del que apunta el ptr. (Como referencia, el primer byte de un variant string es 08).
En otras palabras, (en Olly) haces followInDump del parametro, verificas el 08 al inicio y haces un followDWORDInDump del 3er DWORD. Asi llegas al string (es "UNICODE").
Saludos!
En línea
MCKSys Argentina
"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."