Cita:
Empezado por Guillermo80
...He estado mirando un poco más a fondo las directivas y en este caso creo que está claro que se usa register, que es la que permite definir tipos con parámetros...El error que me sale es directiva desconocida para FLAC__StreamEncoderProgressCallback
|
mmm

...creo que no lo has comprendido del todo bien. Dudo mucho que
Register sea la directiva adecuada para este caso. Normalmente las DLLs escritas en C++ usan la convención de llamada
StdCall o
SafeCall. Si la documentación de la biblioteca no lo indica, lo más probable es que debas usar
StdCall.
El error que te aparece seguramente es
Unknown directive: 'FLAC__StreamEncoderProgressCallback'. Habla bien de un forista mostrar el mensaje exacto de error que le aparece en pantalla, más que una interpretación personal (y a veces equivocada) del mismo.
Ese error aparece porque le estás dando el nombre del tipo de dato después de la palabra
Procedure; basta con que el nombre aparezca una sola vez delante (a la izquierda) del signo de igual ("="), como ya lo está ahí. Después de "
Procedure" deben ir los parámetros entre paréntesis, es decir, la cabecera.
Por otro lado, desconozco por qué declaras la variable
funcCallback (tendría que ver tu código para decirte si realmente la requieres). Lo que sí debes de tener claro, Guillermo, es que
debes* crear un procedimiento con la misma cabecera que define TFLAC__StreamEncoderProgressCallback, para poder darle ese procedimiento a la función que lo espera como parámetro.
Ese procedimiento que vas a crear, es tu rutina de retrollamada.
*¿Qué dice la documentación de la biblioteca? ¿Forzosamente debes proporcionar ese procedimiento? Algunas veces las funciones de retrollamada son opcionales.
Espero haber orientado.
Al González.