Hola foreros, comento mi problema. Estoy preparando una dll a partir de un código que a tiene todos los .hy .c. Para ello me estoy creando todos los headers equivalentes en una unidad de Delphi, que será el lenguaje en el que voy a usar la dll, y sólo me queda uno por hacer, he aquí el problema. Llegado este punto, previo al gran problemón:
Cita:
struct FLAC__StreamEncoderProtected;
struct FLAC__StreamEncoderPrivate;
typedef struct {
struct FLAC__StreamEncoderProtected *protected_;
struct FLAC__StreamEncoderPrivate *private_;
} FLAC__StreamEncoder;
|
Total, que me lo defino en mi .pas de delphi, y ahora, cuando necesito los headers, encuentro el de
FLAC__StreamEncoderProtected, pero el
FLAC__StreamEncoderPrivate no está en un .h sino en un .c, lo cual me dejó un poco mosca.
Ahora resulta que es un registro enorme con montones y montones de campos, y que hace alusiones a no pocos tipos predefinidos en otros .h que no he incluido aún, y me resulta de lo más sospechoso todo esto, llevo la mitad traducido y me queda bastante aún, y no sé si lo estoy haciendo bien, por el hecho de no venir definido en un .h.
¿Qué sugerencia podríais darme?¿Hay que sacrificarse de lleno o hay alguna alternativa?
He estado mirando si realmente voy a usar todos los campos del registro, para definir sólo aquellos que necesite, pero resulta que en la función más importante hace:
Cita:
FLAC__StreamEncoder enconder;
encoder->private_ = (FLAC__StreamEncoderPrivate*)calloc(1, sizeof(FLAC__StreamEncoderPrivate));
|
Por lo que reserva memoria para el registro private, que debe ser del tamaño que viene en el .c, así que me estropea el invento de "ahorrar campos".
Estoy desesperado, por favor, una ayuda quiero¡¡¡