🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.comp.lang.learn.c-c++
Article #783

Re: Pb de Cast

#783
From: Apple
Date: Thu, 23 Dec 1999 00:00
69 lines
2979 bytes
Merci

--
----------------------------------------------------------------------------
------------------------------
gin@wanadoo.fr
Like Sybase Central LSC http://perso.wanadoo.fr/laserquest/linux

Serge Paccalin <sp@mailclub.nospam.net> a �crit dans le message :
MPG.12ccaf60f0a0dff2989741@news.fnac.net...
> On/le Thu, 23 Dec 1999 21:57:01 +0100,
> Apple <gin@wanadoo.fr> wrote/a �crit...
> >  J'utilise gcc 2.95.x et j'ai un probl�me de cast en c++/c
> >
> >  j'ai une fonction qui renvoie un void * (fct syst�me) mais c'est en
r�alit�
> >  un pointeur sur une fonction:
> >  La pr�c�dente version de gcc me mettait un warning sur l'affectation
d'un
> >  void * en autre chose
> >  mais la nouvelle version fait une erreur !!!
> >
> >  voici le bout de code :
> >
> >  void mafct()
> >  {
> >       void *hfile;
> >      char *(*name)();
> >
> >
> >      hfile=dlopen("lib.so",RTLD_LAZY);
> >      if (!hfile)
> >      {
> >          printf("%s\n",dlerror());
> >         return;
> >      }
> >      name=dlsym(hfile,"PlugInName");   // cette fct renvoie un void *
> > comment
> >            le caster en char * (*)
> >                                                                  // Elle
> > recupere dans une lib une fonction et renvoie un poiteur sur cette fct
!!!
>
  --------------------------------------------------------------------------
-
> > -------------------------------
>
> Si tu veux quelque chose de lisible, d�finis un type 'pointeur vers ce
> genre de fonction' et utilise pour d�clarer la variable et 'caster' le
> retour de fonction.
>
> typedef char *(*PROCPTR)();
>
> ...
>
> PROCPTR name;
>
> ...
>
> name = (PROCPTR)dlsym(hfile,"PlugInName");  // renvoit un void *
>
> ...
>
> --
>   ___________
> _/ _ \_`_`_`_)  Serge PACCALIN
>  \  \_L_)       sp@mailclub.net
>    -'(__)  L'hypoth�se la plus �labor�e ne saurait remplacer
> _/___(_)   la r�alit� la plus bancale. -- San-Antonio
Technical Details
Message-ID: <83u3it$td$1@wanadoo.fr>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <83u276$tb$1@wanadoo.fr> <MPG.12ccaf60f0a0dff2989741@news.fnac.net>

Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII
X-Google-Thread: fdcad,902d1c07f4488079
X-Google-Attributes: gidfdcad,public
X-Google-Thread: 114592,7f00a62cd7dca919
X-Google-Attributes: gid114592,public
X-Google-Thread: 1014db,7f00a62cd7dca919
X-Google-Attributes: gid1014db,public
X-Google-Thread: f9822,f22d8660832eaded
X-Google-Attributes: gidf9822,public
From: "Apple" <gin@wanadoo.fr>
Subject: Re: Pb de Cast
Date: 1999/12/23
Message-ID: <83u3it$td$1@wanadoo.fr>
X-Deja-AN: 564323082
References: <83u276$tb$1@wanadoo.fr> <MPG.12ccaf60f0a0dff2989741@news.fnac.net>
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
X-Complaints-To: abuse@wanadoo.fr
X-Trace: wanadoo.fr 945983901 941 193.250.83.79 (23 Dec 1999 21:18:21 GMT)
Organization: Wanadoo, l'internet avec France Telecom
X-MSMail-Priority: Normal
NNTP-Posting-Date: 23 Dec 1999 21:18:21 GMT
Newsgroups: alt.comp.lang.learn.c-c++,comp.lang.c,fr.comp.lang.c,fr.comp.lang.c++