|
Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
Bonjour, j'ai besoin d'accéder à une fonction d'une DLL externe (openGL32.DLL), mais je ne peu pas y accéder directement, je dois obligatoirement passer par un pointeur de fonction, mais comment faire cela en Windev?
voici le code en C :
Déclaration : void (APIENTRY * glActiveTextureARB) (GLenum) = NULL;
Utilisation : glActiveTextureARB = (void (APIENTRY *) (GLenum) ) wglGetProcAddress("glActiveTextureARB");
Pour info, c'est de l'openGL
Merci pour votre aide
Contribution le : 10/09/2009 13:49
|
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
bon, je récupere (semble t il) l'adresse de ma fonction garce a la fonction wglGetProcAddress de la dll opengl32.dll.
Mais j'en fait quoi de ce pointeur maintenant? parceque je me retrouve avec mon adresse que je stock dans un entier, mais apres.....
Contribution le : 10/09/2009 14:40
|
_________________
be aware
|
|
Re: Pointeur de fonction |
|
Inscrit: 26/02/2003 19:33
De Paris
Post(s): 16
|
Essaies directement GL_TEXTURE0_ARB est entier = 0x84C0 GL_TEXTURE1_ARB est entier = 0x84C1
nTexture est entier sans signe sur 2 octets = GL_TEXTURE0_ARB API("openGL32.DLL","glActiveTextureARB",nTexture)
le pointeur n'est normalement utilisé qu'en assembleur pour faire un appel de fonction
push param call pfunc
Contribution le : 11/09/2009 23:45
|
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
c'est la premiere chose que essayé, mais il me dit que glActiveTextureARB n'existe pas dans openGL32.dll.
j'ai essayé de passé par Glew32.dll qui fait les appels aux fonctions OPENGL qui sont des extensions, l'initialisation de la DLL se passe bien (semble-t-il), mais si j'appelle kma fonction, meme résultat.
petite question : c'est quoi le push param et call pfunc à la fin?
Contribution le : 14/09/2009 10:34
|
_________________
be aware
|
|
Re: Pointeur de fonction |
|
Stagiaire WDF
Inscrit: 23/12/2004 18:25
De Rennes
Post(s): 35
|
le push/call c est la maniere d appeler une fonction avec passage de parametre en assembleur. As tu essayé avec l API CreateThread ? Vince
Contribution le : 14/09/2009 12:37
|
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
mon probleme est que createthread n'accepte qu'un seul paramètre, hors j'en est 3 à lui passer, et pas nécessairement de meme type.
j'ai bien peur de devoir abandonner tout espoir.
Contribution le : 14/09/2009 14:33
|
_________________
be aware
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
comme vous m'avez l'air bien au courant sur OpenGL, j'ai une question :
je n'arrive pas a texturé un GLPoints, dès que j'ajoute ma texture, mes points disparaissent, étrange non?
Contribution le : 14/09/2009 15:36
|
_________________
be aware
|
|
Re: Pointeur de fonction |
|
Stagiaire WDF
Inscrit: 23/12/2004 18:25
De Rennes
Post(s): 35
|
Salut,
J'y connais presque rien en OpenGL désolé. a+ Vince
Contribution le : 15/09/2009 20:34
|
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
j'ai peut etre trouvé une solution détournée pour m'en sortir.
j'ai refiler le code C++ a un ami qui en fait, et il va me faire un dll qui va me faire pour moi. du coup, je charge la DLL, j'appelle les fonctions OPENGL dans cette dll comme si c'etait l'OPENGL32.DLL, et la dll va faire l'intermediaire entre opengl et mon appli. si ca marche, je ferais un retour ici.
Contribution le : 16/09/2009 14:53
|
|
|
Re: Pointeur de fonction |
|
Stagiaire WDF
Inscrit: 23/12/2004 18:25
De Rennes
Post(s): 35
|
Bonjour,
En effet, c'est une solution qui fonctionnera
Contribution le : 16/09/2009 17:05
|
|
|
Re: Pointeur de fonction |
|
Stagiaire WDF
Inscrit: 10/11/2009 16:11
Post(s): 1
|
Bonjour, je planche sur le même problème, je n'arrive pas à utiliser les extensions OpenGL, même avec GLEW.
Avez vous trouvé une solution viable (votre parseur en C++) ?
Aussi, le même problème avec les points texturés, ils disparaissent, bizarre.
J'utilise Windev 12.
Merci.
Contribution le : 10/11/2009 16:13
|
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
Non, toujours pas de solution pour le GLPoint.
Pour mon probleme initial d'extension, je voulais faire du multitexture, en une seule passe, cela nécessite les extensions, donc je me suis rabattu sur du multipasse, tant pis, mais ca marche.
Pour la DLL en C++, je n'ai pas encore eu le temps de me pancher dessus, car deja, faut que je trouve comment on fait une DLL en C++....
Contribution le : 06/01/2010 14:32
|
|
|
Re: Pointeur de fonction |
|
ChefDeProjet WDF
Inscrit: 29/05/2007 17:03
De Sassenage
Post(s): 180
|
Bon, juste pour tenir au courant pour les textures sur les points. J'ai l'impression que sans les extensions, cela ne fonctionne pas, bien qu'aucun message d'erreur d'accès à ces dernière ne surgisse.
Mais je pense avoir trouvé un moyen de contourner le problème et qui, de toute façon, me servira ailleur : Le billboarding
Mais c'est quoi donc? Le billboarding est une technique qui permet de conserver un objet toujours face a l'utilisateur. Concrètement, si je fais un quad, quelque soit l'orientation de la caméra, le billboarding recalculera l'orientation de ce quad afin qu'il fasse toujours face à la camera. Donc il est ainsi possible de faire des effets de particules au meme titre que les GLPOINT.
Mais cela sert aussi dans de nombreux autres domaine, par exemple, faites un quads en y appliquant une texture de nuage, et ainsi, si vous déplacé votre camera, vous ne tourné pas autour du nuage puisque son orientation et position sera recalculer pour qu'il soit toujours en face de la caméra. :)
Contribution le : 22/01/2010 09:11
|
_________________
be aware
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|