Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 01-04-2008
Avatar de Guillermo80
Guillermo80 Guillermo80 is offline
Miembro
 
Registrado: may 2007
Posts: 87
Poder: 20
Guillermo80 Va por buen camino
Hola Al, muchas gracias por tu aportación, sin duda está siendo muy valiosa para mí.
He aplicado las cosas como me dijiste y efectivamente, ya compila y ejecuta, pero hay alguna cosa que no tengo clara.

La función de retrollamada tienes razón, es opcional, y le puedo pasar un nil a la función principal en el parámetro de la función de retrollamada, pero finalmente la he incluido.

Mi código ha quedado como sigue de forma resumida:

Cita:
type

FLAC__StreamEncoderProgressCallback = procedure
(encoder:PFLAC__StreamEncoder; bytes_written:FLAC__uint64; samples_written:FLAC__uint64;total_frames_estimate:LongWord; client_data:Pointer);StdCall;
Yo me declaro una variable para meterla como parámetro a la función principal:
Cita:
var

funcCallback : FLAC__StreamEncoderProgressCallback;
Usando en mi función ppal:

Cita:
begin
...
init_status := FLAC__stream_encoder_init_file(pencoder, pfileDestino, funcCallback, nil);
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?
En VisualC lo hace así:

Cita:
static void progress_callback(const FLAC__StreamEncoder *encoder, FLAC__uint64 bytes_written, FLAC__uint64 samples_written, unsigned frames_written, unsigned total_frames_estimate, void *client_data);
...
int main(int argc, char *argv[])
...
init_status = FLAC__stream_encoder_init_file(encoder, argv[2], progress_callback, NULL);
El parámetro NULL (parámetro formal void client_data) se supone que es como dice textualmente: \param client_data. This value will be supplied to callbacks in their \a client_data argument. O sea, que serviría para las retrollamadas??

Un saludo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿puntero a puntero? Guillermo80 Varios 3 09-03-2008 22:46:32
puntero gaston260 API de Windows 11 01-02-2008 22:39:20
uso de función de dll cuyo parametro es un puntero (dirección) a una estructura abracadabra Varios 1 12-10-2007 16:43:59
pasar un puntero a una funcion baby Varios 2 21-05-2007 13:10:22
puntero a imagen Abaddon Gráficos 9 16-06-2005 00:17:29


La franja horaria es GMT +2. Ahora son las 11:37:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi