FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
problema con casting de parametro void*
Hola amigos, tengo una funcion la cual espera como parametro un LPVOID y tengo un void* pero el problema es que el void* apunta a una direccion y yo quiero enviarle esa direccion + 4.
Código PHP:
El problema es el segundo parametro de esa funcion la cual espera un buffer. Si por ejemplo hago esto: Código PHP:
¿como se haría eso? solo se me ocurre usar una variable auxiliar la cual incrementaria 4 y le pasaria esa. |
#2
|
||||
|
||||
El problema creo que es porque el compilador no sabe el tamaño del dato. Es decir, si tu itenes un char*, el compilador sabe que el tamaño de dato es 1 octeto ( sizeof (char)). Si tienes int* entonces el tamaño será 2 octetos o 4 octetos (dependiendo de la configuración y del SO), es decir "sizeof (int)". Con void* no lo sabe porque los datos "void" tienen un tamaño de 0 octetos.
Así, "pPathSave + 4" se traduce por Código:
(void*) (((long int)pPathSave) + (4 * sizeof (void))) Código:
(void*) (((long int)pPathSave) + (4 * 0)) La única solución que se me ocurre es no usar void*, sino un puntero al tipo de dato apropiado (deduzco que en tu caso sería int*). Por cierto, "&pPathSave" devuelve la dirección donde se almacena el puntero, no el valor del puntero. Última edición por Ñuño Martínez fecha: 14-01-2015 a las 15:44:27. |
#3
|
||||
|
||||
Código PHP:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Casting de component | dfarias | Desarrollo en Delphi para Android | 3 | 07-05-2014 19:57:27 |
problema con casting/tipo money en postgreSQL | viaraSOFT.com | SQL | 4 | 16-02-2011 17:41:54 |
Casting | annieruci | OOP | 8 | 16-02-2011 16:16:05 |
Salir De Un Void | pbg | C++ Builder | 5 | 14-06-2010 13:10:53 |
Problema con funcion VOID | fedee | C++ Builder | 4 | 12-11-2009 18:06:00 |
|