User Tag List

Resultados 1 al 5 de 5

Tema: ¿Cómo hacer este casting?

  1. #1

    Fecha de ingreso
    Feb 2005
    Mensajes
    1,120
    Mencionado
    7 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    60
    Agradecer Thanks Received 
    84
    Thanked in
    Agradecido 50 veces en [ARG:2 UNDEFINED] posts

    ¿Cómo hacer este casting?

    Buenas, estoy intentando compilar un programa que aunque esta en C, en teoria esta preparado para compilar en C++, pero no hace más que darme errores de castings. El caso es que algunos son sencillitos y los voy arreglando, pero este de punteros a funciones no se por donde cogerlo.
    Al compilar con el g++ parece que hay que hacer algo especial para que se de cuenta el compilador del casting, pero no tengo ni idea, a ver si me podeis echar un cable...he pegado los trozos de codigo aqui, explicando un poco:
    http://rafb.net/paste/results/Doi8Gv64.html
    Gracias por adelantado

  2. #2

    Fecha de ingreso
    Mar 2003
    Ubicación
    Cerdanyola
    Mensajes
    3,848
    Mencionado
    46 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    38
    Agradecer Thanks Received 
    1,887
    Thanked in
    Agradecido 614 veces en [ARG:2 UNDEFINED] posts
    pon esto:
    m->_PutFace = (pl_Cam*, pl_Face*)plPF_TransF;

    Aunque es un tipo muy raro, no se si funcionara...

  3. #3

    Fecha de ingreso
    Apr 2003
    Ubicación
    Salamanca
    Mensajes
    5,346
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    12
    Agradecer Thanks Received 
    32
    Thanked in
    Agradecido 27 veces en [ARG:2 UNDEFINED] posts
    Hombre, yo el error no se si sera de casting. No soy ningun experto en este tipo de cuestiones, aunque he lidiado antes con punteros de función.

    Segun dices que te responde el compilador, esta claro que se debe a que tu declaras el puntero a una funcion sin argumentos y despues quiere asignar una funcion con argumentos. La definicion de una funcion pasa siempre por definir el tipo de retorno y el tipo delos argumentos.

    Prueba a cambiar la definicion del puntero de la estructura de:

    Código:
    void (*_pfunct)();
    a

    Código:
    void (*_pfunct)(pl_Cam *, pl_Face *);

  4. #4

    Fecha de ingreso
    Feb 2005
    Mensajes
    1,120
    Mencionado
    7 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    60
    Agradecer Thanks Received 
    84
    Thanked in
    Agradecido 50 veces en [ARG:2 UNDEFINED] posts
    Pakoito se le atragantaba solo por culpa de las funciones de reserva de memoria, pero eso le pasa tambien en C, y de momento al menos compila el c++ sin problemas ^^
    Wave eso fue lo primero q se me ocurrio y no colaba xD
    Mortimor creo que tu forma ha funcionado jeje pero poniendo _pl_Mat y _pl_Face, a ver si voy arreglando todas las cosillas que salen y pruebo si funciona ;P
    Muchas gracias voy a seguirrr

  5. #5

    Fecha de ingreso
    Apr 2003
    Ubicación
    Salamanca
    Mensajes
    5,346
    Mencionado
    2 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    12
    Agradecer Thanks Received 
    32
    Thanked in
    Agradecido 27 veces en [ARG:2 UNDEFINED] posts
    Me alegro de que te funcione En el fondo se algo de esto

    No dudes en preguntar, que estamos aqui para echarnos un cable los unos alos otros.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •