elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Re: consulta sobre utilizacion SysLink y LITEM Struct (SOLUCIONADO)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Re: consulta sobre utilizacion SysLink y LITEM Struct (SOLUCIONADO)  (Leído 3,565 veces)
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consulta sobre utilizacion SysLink y LITEM Struct (SOLUCIONADO)
« en: 9 Julio 2011, 01:05 am »

bue estoy en un projecto en el cual, tengo que poner un Link a un sitio, por lo cual estoy usando un Syslink, pero me surgio un problemita, necesito obtener el Vinculo del texto del Syslink, hay una forma de hacerlo por lo que busque y es LITEM Structure, pero obiamente algo estoy haciendo mal ni me detecta el LITEM. y me tare, ¿alguie n ha usado este control antes?
podria sacar el vinculo desde una variable de por ahi, pero como el projecto no esta terminado y me alta mucho, ese vinculo puede cambiar, y quiero linkearlo estrictamente al texto del control y no sacarlo de una variable de otro lado.

se que tengo que hacer un SendMessage con LM_GETITEM i el pointer de LITEM,
pero hasta ahi llego, no se omo seguir.

no quiero usar un control static por que seria un bardo formatearlo y esas cosas, preferiria uar el SysLink...


Program's Lang : C++
AppType: WinApi
Lang Version: 6.0
IDE: Visual Studio 6.0



« Última modificación: 9 Julio 2011, 20:29 pm por xkiz ™ » En línea

xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consulta sobre utilizacion SysLink y LITEM Struct
« Respuesta #1 en: 9 Julio 2011, 03:43 am »

perdon que repostee pero no keria editar el post anterior.

Código
  1. LITEM item;
  2. WCHAR szID[MAX_LINKID_TEXT];
  3. WCHAR szUrl[L_MAX_URL_LENGTH];
  4.  
  5. item.mask = LIF_ITEMINDEX|LIF_URL;
  6. item.iLink = 0;
  7. item.szUrl = szUrl;
  8. SendMessage(GetDlgItem(hwnd, IDC_WWW), LM_GETITEM,0, (LPARAM)&item);
  9. //////////////////////////////////////////////////////////////////////////////////////////
  10. MessageBox(NULL, (LPCTSTR)szUrl,"", MB_OK);
  11.  

aca me aparecio un error, no entiendo como arreglar:[item.szUrl = szUrl;]: : error C2440: '=' : cannot convert from 'char [2]' to 'unsigned short [2084]'

el valor de asignacion es el mismo type que el valor a extraer y no se por que da ese error.
pero si saco el item.szUrl, me devuelve solo la primera letra del vinculo, osea la http://www.google.com.

hasta aca llegue por ahora, como que me falta asignarle un tamaño a la cadena, pero.....


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: consulta sobre utilizacion SysLink y LITEM Struct
« Respuesta #2 en: 9 Julio 2011, 06:57 am »

.
item.szUrl = szUrl;   //  Son cadenas... No numeros.

strcpy();
memcpy();

pero si quieres algomas estilo VB6 sobrecarga el operador = del tipo WChar y dentro del proceso de sobrecarga realiza los strcpy() o memcpy() como desees (lo mas habitual es que sea con strcpy()  ).

usa memcpy()

Wchar son 2bytes... en esta estructura:

Caracter, NULL = 1 Wchar es decir que Serian 2 char...

Dulces Lunas!¡.
« Última modificación: 9 Julio 2011, 07:02 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
xkiz ™


Desconectado Desconectado

Mensajes: 1.252


Ver Perfil WWW
Re: consulta sobre utilizacion SysLink y LITEM Struct (SOLUCIONADO)
« Respuesta #3 en: 9 Julio 2011, 19:51 pm »


EDIT: lo solucione con WideCharToMultiByte


gracias por responder, hay algo que no entiendo, osea todavia sigo recibiendo un solo caracter del link. aca abajo te dejo un Ej de lo que estoy haciendo, tal vez si lo ves ahi podes ver mejor donde estoy mal.
la idea de usar SysLink la saque del Control Spy





attachment: SysLinkTest.rar (7.79 KB)

« Última modificación: 9 Julio 2011, 20:28 pm por xkiz ™ » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Re: consulta sobre utilizacion SysLink y LITEM Struct (SOLUCIONADO)
« Respuesta #4 en: 9 Julio 2011, 23:57 pm »

ammm si mira loq ue obtienes es esto

[h t t p : / / w w w . g o o g l e . c o m ]   <---- asi trabaja el Wchar*

Los espacios son Byte=0 sirven como separadores.

loq ue quieres obtener TU es esto:

[http://www.google.com] <--- Asi trabaja el char*...

[h ] = Wchar
[h]  = char

Para una cadena de Wchar tiene al final un Wchar [  ] vacio byte=0 , byte=0

intenta poner esto:

Código
  1.  
  2.    int _i,
  3.        _ln = L_MAX_URL_LENGTH,
  4.        _a;
  5.    char *__p_str = NULL;
  6.  
  7.    _ln        =(_ln>>1); // divicion entre 2...
  8.    __p_str = (char*)malloc(_ln);
  9.  
  10.    for( _i=0, _a=1; _i<_ln ; _i++ , _a=_a+2)
  11.       __p_str[_i] = szUrl[ _a ];
  12.  
  13.    fprintf(stdout,"%s",__p_str);
  14.    free( __p_str );
  15.  
  16.  
« Última modificación: 10 Julio 2011, 00:00 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines