Crie uma classe para cada typedef struct e um enum para cada typedef enum. Você não tem como escapar disso.
Se as classes vão ser usadas somente dentro de um determinado pacote, não há necessidade de torná-las públicas, e você pode então deixá-las todas dentro do mesmo arquivo .java. Você só precisa separar as classes se a classe for declarada public; nesse caso, você tem de criar um arquivo .java para cada classe public.
O que preciso fazer é acessar uma dll via jna. Tenho um arquivo .h de exemplo, e estes typedef estao todos neste .h, junto com as definições dos métodos da dll.
Acho que vou acabar fazendo uma classe public pra cada struct, e uma classe com todos os enums. Assim acho que fica mais fácil pra manutenção.
Se alguém tiver mais alguma idéia, será bem vinda.
A
Aldrin_Leal
Bem, o lance do JNA envolve justamente isso: Mapear typedefs em classes.
Uma dica: Alinhamento de bytes e certas estruturas complicam um pouco a vida. Faça o seguinte: Crie um programa bobo que faça estes includes e imprima o tamanho destes typedefs através de sizeof.
Isso é um começo - O fato de uma estrutura possuir, digamos, um campo char (em C, 8 bits) e outro int (32-bits) não implica que ele possua 5 bytes. Na verdade, o compilador tende a alinhar para otimizar o acesso (endereços múltiplos de 4 são mais rápidos) farão com que ele possua oito bytes.