2010-11-18 29 views
1

En fonction de la carte graphique d'un ordinateur, je souhaite que mon application sélectionne le fichier opengl32.dll existant (situé dans C:\Windows\System32) ou un Mesa \ fallback logiciel opengl32.dll. Est-il possible de le faire au moment du chargement, ou est-ce hors de mon contrôle?Sélection d'un fichier opengl32.dll spécifique au moment du chargement

Sinon, est-il possible d'exécuter mon propre code avant que des fichiers .dll ne soient chargés dans une application Windows (mes solutions de sauvegarde consistent simplement à renommer le fichier .dll du logiciel contenu dans la même version que mon exécutable)?

Répondre

2

Oui. Utilisez le chargement de délai. C'est un drapeau de compilateur très simple. Dans les coulisses, il va générer les appels LoadLibrary et GetProcAddress pour vous.

Sinde le chargement réel de opengl32.dll va maintenant être retardé au premier appel d'un funciton OpenGL, vous avez le temps d'appeler SetDllDirectory.

2

Découvrez LoadLibrary(Ex).

+0

J'ai travaillé dans mon vrai projet, mais pas dans mon projet prototype. Assez bien. –