website logo
Auteur
avatar
zzd10h

Forum » » Création-Développement » » A l'aide : Pb CloseWindow() Intuition en C


Posté : 12-05-2012 15:33 icone du post

Bonjour,
J'essaie de résoudre un problème de fenêtre Console gelée à la sortie d'un REXX à l'aide d'un petit prog C.
J'arrive à parcourir la liste des fenêtres ouvertes Intuition. Ensuite, je tente de tuer la fenètre qui m'intéresse avec la fonction CloseWindow().

Sous MOS, tout compile et s'exécute bien, liste des fenêtres et kill de celle que je veux, parfait !

Sous AOS, le même source, se compile bien mais il y a une erreur au link, cela ne marche que si je commente la fonction CloseWindow().
Sinon, undefined reference to `IIntuition'

gcc -D__USE_BASETYPE__ -D__USE_INLINE__ -O2 -c KillWindow_AOS.c
gcc -o KillWindow_AOS KillWindow_AOS.o

KillWindow_AOS.o: In function `main':
KillWindow_AOS.c:(.text+0x8a): undefined reference to `IIntuition'
KillWindow_AOS.c:(.text+0xe6): undefined reference to `IIntuition'
make: *** [KillWindow_AOS] Error 1

Est-ce que quelqu'un qui connait le C peut m'aider, svp ?

A la vue du source ci-dessous, vous comprendrez que je ne suis pas un pro du C (je me suis inspiré d'exemples trouvé sur internet), donc merci de ne pas utiliser de termes trop complexes ;)

Voici le source (les !include!s passent mal sur Amiga-NG, j'enléve les char spéciaux) :

!include! stdio.h
!include! exec/types.h
!include! intuition/intuition.h
!include! intuition/intuitionbase.h
!include! dos/dos.h
!include! proto/exec.h
!include! proto/intuition.h
!include! proto/dos.h

struct IntuitionBase *IntuitionBase = NULL;

int main(void)
{
IntuitionBase = (struct IntuitionBase *)OpenLibrary( "intuition.library", 0L );

if ( IntuitionBase != NULL )
{
struct Window *NextWindow = ((struct IntuitionBase *)IntuitionBase)->FirstScreen->FirstWindow;

while (NextWindow)
{
if (NextWindow->Title)
{
printf("Fenetre : %s\n",NextWindow->Title) ;
if (strcmp(NextWindow->Title,"ReplayAOS+ console") == 0)
{
printf("Fenetre trouvée: %s\n",NextWindow->Title) ;
CloseWindow( NextWindow ); /* si commentaire => OK, sinon undefined reference to `IIntuition' */
}
}
NextWindow = NextWindow->NextWindow;
}
printf("Fin de la liste\n") ;
}
else
{
printf( "Pb à l'ouverture de intuition.library!\n" );
}

if ( IntuitionBase != NULL )
{
CloseLibrary( (struct Library *)IntuitionBase );
}
return 0;
}



Message édité par : zzd10h / 12-05-2012 15:34

Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=1310&forum=14