Je me suis intéressé à la puissance d'Autoit car j'ai un projet pour tenter d'automatiser un couteau
suisse du traitement d'image pour l'astro (IRIS)
J'avais commencé par tenter l'écriture semi automtique de script IRIS. Puis j'ai découvert Autoit.
Dans mon projet j'ai besoin d'accéder à une DLL qui contient toute une bibliothèque spécialisee.
Après avoir testé l'appel de cette dll au trvers de fonction simple je me suis attaqué à l'appel de
fonction dont j'ai besoin mais qui font appel aux structure. Et là je suis coincé. Je n'ai pas trouvé
la solution ni ce forum ni dans son homologue américain.
Mon problème concerne l'appel d'une fonction dont une des variables est un pointeur vers une structure
complexe à étage.La fonction de base est :
Code : Tout sélectionner
int ffopen(fitsfile **fptr, const char *filename, int iomode, int *status)Code : Tout sélectionner
$return = DllCall("cfitsio.dll", "int:cdecl", "ffopen", "ptr",DllStructGetPtr($fitsfile),"str","name.fit","int",0,"int",$status)Le problème se situe au niveau de la structure construite ainsi :
Code : Tout sélectionner
typedef struct /* structure used to store table column information */
{
char ttype[70]; /* column name = FITS TTYPEn keyword; */
...
long twidth; /* width of each ASCII table column */
}tcolumn;
typedef struct /* structure used to store basic FITS file information */
{
int filehandle; /* handle returned by the file open function */
....
tcolumn *tableptr; /* pointer to the table structure */
...
void *tiledata; /* uncompressed tile of data, for row tilerow */
char *tilenullarray; /* optional array of null value flags */
char *iobuffer; /* pointer to FITS file I/O buffers */
....
int ageindex[NIOBUF]; /* relative age of each buffer */
} FITSfil;
typedef struct /* structure used to store basic HDU information */
{
int HDUposition; /* HDU position in file; 0 = first HDU */
FITSfil *Fptr; /* pointer to FITS file structure */
}fitsfile;ne faisant pas référence à des pointeurs de structure. Aussi je ne vois pas comment m'en sortir si cela
est même possible. Je ne sais pas programmé en C même si je peux un peu le comprendre.
Pouvez-vous m'aider ? Merci.





