Dev c++ Api & dll

cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003 - 27 déc. 2002 à 19:30
cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003 - 27 déc. 2002 à 21:51
Tout d'abord lu a tous :big)
comme j'en avais marre de chercher tout seul dans mon coin, ben j'a decidé de veindre :approve)

Bon voila mon problème, dev c++ ne connait pas la fonction InitializeFlatSB ( et donc tous les composant flat Scroll Bar).
Ces fonctions se trouve dans la dll comctl32.dll ( d'après cro$oft version 4.71 et plus ;) ).
Et voici donc ma question .......
comment fait-on pour aller chercher ces fonctions dans la dll ??? On plus généralement comment fait-on pour se linker avec une fonction d'une librairie ????????

Merci d'avance.

8 réponses

jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
27 déc. 2002 à 20:13
Salut,

Essaye de rajouter l'option -lcomctl32 ou -llibcomctl32 au linker (accessible par Atl+P).
0
cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003
27 déc. 2002 à 20:24
j'avais déja essayé, mais en fait c'est que dev c++ n'a même pas les entêtes de fonction dans le .h qui devrais justement les contenir :sad) , en fait dev c++ ne support ces fonction de l'api window je crois :sad) .

Merci quand même et @+ ;)
0
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
27 déc. 2002 à 21:06
Bon OK. Il va donc falloir charger la dll dynamiquement. Voila les etapes :

1- Declare ta fonction :
typedef BOOL (MYINIT*) (HWND)
BOOL type de retour
MYINIT (ou ce que tu veux) alias de la fonction
HWND type des parametres d'entree (ici un seul)

2- Lorsque tu en as besoin il te faut :
HINSTANCE hLib;
MYINIT InitFnt;

3- Charge la dll
hLib = LoadLibrary("comctl32.dll");
Verifie que hLib != NULL

4- Charge la fonction :
InitFnt = (MYINIT) GetProcAddress(hLib, "InitializeFlatSB");

5- Utilise la fonction :
(InitFnt) (hWnd);
C'est comme ci que tu faisais :
InitializeFlatSB(hWnd);

6- Decharge la DLL :
FreeLibrary(hLib);

Voila, c'est lourd dingue mais si tu n'as que dev c++ y aura pas d'autre moyen.
0
cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003
27 déc. 2002 à 21:14
HHHHHHHHHHHAAAAAAAAAAAAA NNNNNNNOOOOOONNNNNNN (crie de douleur !!!!!!!!)

y'a po d'autre moyen que ca parce que c'était le dernière espoir que j'avais avant de le faire et puis même ca sa marche po, sa compile mais sa plante lamentablement (violation d'accès !!!!! :sad) ) SNNNNNNNNNIIIIIIIFFFFFFFFFFFFFFFFFFFF

(au fait t'aurais po vu ca sur MSDN de Mr Gates ??? ;) )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003
27 déc. 2002 à 21:17
PS: je crois que ton étoile est mal placé typedef BOOL (MYINIT*) (HWND)

ET SURTOUT MERCI DE D'ETRE OCCUPE DE MON MISERABLE CAS.
0
jcecchi Messages postés 117 Date d'inscription samedi 12 janvier 2002 Statut Membre Dernière intervention 14 janvier 2003 3
27 déc. 2002 à 21:40
Euh ecoute, je viens de verifier et ca marche tres bien. Es tu sur que hLib != NULL, parce que sinon la violation d'acces c'est normal.
Et oui c'est vrai l'etoile etait du mauvais cote.
Mais normalement ca doit marcher sans probleme.
0
cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003
27 déc. 2002 à 21:48
tu l'as mis ou l'appelle de fonction ??????

je l'ai mis juste apres le createwindowex c'est pis etre à cause de sa ????????
0
cs_pounch Messages postés 12 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 22 novembre 2003
27 déc. 2002 à 21:51
laisse tombé c'est ca ca fait plus de 30 minutes que je cherches alosr que j'ai bon MERDE!!!!!!!!
c t juste mon code qui était mal placé SNIFFFFFFF

merci pour tout et c'est bien de rencontrer d'autre fou de la bidouille de dll and co MDR

PS: il faut absolement faire un ShowWindow avant d'appeler cette fonction, c'est con mais c'est comme ca ;)
0
Rejoignez-nous