Cita:
Empezado por Guillermo80
...Aunque entiendo que está incompleto porque funcCallback debe inicializarse de alguna forma, pero no entiendo como hacer exactamente lo que me comentas de: "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".
¿Tendría que crear un procedimiento con otro nombre?¿Cómo lo usaría para poder "alimentar" mi función principal correctamente?...
|
Primero asegúrate de si la función de retrollamada es necesaria u opcional. En caso de ser necesaria o de
querer darle una a la función Init_File, habrás de crear, efectivamente, un procedimiento con el nombre que quieras (mientras no tenga conflicto con otros identificadores, claro está), siendo ese procedimiento de cabecera equivalente al tipo de dato
FLAC__StreamEncoderProgressCallback que ya declaraste.
Una vez escrito ese procedimiento, para hacer referencia a la dirección de memoria del mismo, puedes emplear el operador "at" (la arroba):
Código Delphi
[-]
init_status := FLAC__stream_encoder_init_file(pencoder, pfileDestino, @MiProcedimiento, Nil);
Con esto le dices a FLAC__stream_encoder_init_file que la función de retrollamada que debe ejecutar es
MiProcedimiento. Al parecer, el último parámetro (Nil) es algún valor que tu quieras darle a la función de retrollamada.
Es como decirle a la función Init_File: "
Oye, te encargo que ejecutes a MiProcedimiento, y al hacerlo incluye en sus parámetros este valor".
También es importante que entiendas bien todos los
conceptos que estás manejando. Para empezar sería bueno, si no te molesta, comentarnos qué propósito tiene esa API que estás usando y cuál es el objetivo.
Saludos.
Al.