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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


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
Créer un fichier PDF de la contribution Imprimer


Re: Pointeur de fonction
Stagiaire WDF
Inscrit:
13/08/2010 17:32
Post(s): 2
Bonjour,
Cette question a presque 1 an, mais peut-être que d'autres vont se poser la question, alors voici une solution :
http://forum.pcsoft.fr/thread.awp?groupid=pcsoft.fr.windev&postid=201371&cur=201371&start=11&v=2

Contribution le : 13/08/2010 17:34
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2