INSTALLUSERDRIVER |
Installe le pilote utilisateur |
---|---|
Turbo C 1.5+ | graphics.h |
Syntaxe
int far installuserdriver(char far *name, int huge (*detect)(void)); |
Paramètres
Nom | Description |
---|---|
name | Ce paramètre permet d'indiquer le nom du fichier du pilote utilisateur. |
detect | Ce paramètre permet d'indiquer le pointeur pointant sur les données du pilote. |
Description
Cette fonction permet d'installer un pilote de périphérique ajouté par le fournisseur dans la table des pilotes de périphérique BGI.
Remarques
- La fonction installuserdriver vous permet d'ajouter un pilote de périphérique ajouté par le fournisseur à la table interne BGI. Le paramètre de nom est le nom du nouveau fichier de pilote de périphérique (.BGI) et le paramètre de détection est un pointeur vers une fonction de détection automatique facultative pouvant accompagner le nouveau pilote. Cette fonction de détection automatique ne prend aucun paramètre et renvoie une valeur entière.
- Il existe deux manières d'utiliser ce pilote fourni par le fournisseur. Supposons que vous ayez une nouvelle carte vidéo appelée Spiffy Graphics Array (SGA) et que le fabricant SGA vous ait fourni un pilote de périphérique BGI (SGA.BGI). Le moyen le plus simple d'utiliser ce pilote est de l'installer en appelant installuserdriver, puis en transmettant la valeur de retour (le numéro de pilote attribué) directement à initgraph.
- L'autre façon, plus générale, d'utiliser ce pilote consiste à lier une fonction de détection automatique qui sera appelée par initgraph dans le cadre de sa logique de détection matérielle (vraisemblablement, le fabricant du SGA vous a fourni cette fonction de détection automatique). Lorsque vous installez le pilote (en appelant installuserdriver), vous transmettez l'adresse de cette fonction, ainsi que le nom de fichier du pilote de périphérique.
- Après avoir installé le nom de fichier du pilote de périphérique et la fonction de détection automatique SGA, vous appelez initgraph et le laissez suivre son processus de détection automatique normal. Avant qu'initgraph n'appelle sa fonction de détection automatique intégrée (detectgraph), il appelle d'abord la fonction de détection automatique SGA. Si la fonction de détection automatique SGA ne trouve pas le matériel SGA, elle renvoie une valeur de -11 (grError) et initgraph poursuit sa logique de détection matérielle normale (pouvant inclure l'appel de toute autre fonction de détection automatique fournie par le fournisseur dans l'ordre dans lequel elles étaient "installés"). Si, toutefois, la fonction de détection automatique détermine qu'un SGA est présent, elle renvoie un numéro de mode non négatif ; alors initgraph localise et charge SGA.BGI, met le matériel dans le mode graphique par défaut recommandé par le système de détection automatique fonction, et rend enfin le contrôle à votre programme.
- Jusqu'à dix pilotes peuvent être installés en même temps.
- La valeur renvoyée par installuserdriver est le paramètre de numéro de pilote que vous passeriez à initgraph afin de sélectionner manuellement le pilote nouvellement installé.
- La fonction installuserdriver fonctionne uniquement avec les compatibles IBM PC et compatibles équipés d'adaptateurs d'affichage graphiques pris en charge.
Exemple
Voici un exemple d'installation d'un pilote personnalisé SGA :
- #include <stdio.h>
- #include <stdlib.h>
- #include <graphics.h>
-
- int Driver, Mode;
- int huge detectSGA(void) { /* Logique d'auto-détection */
- int found, defaultmode;
- /* Détecter le matériel selon les besoins ... found = ..... */
- if(!found) return (grError); /* S'il n'est pas présent, donner une erreur */
- /* Déterminer le mode graphique par défaut ... defaultmode = .... */
- return ( defaultmode );
- }
-
- main () {
- Driver = installuserdriver("SGA", detectSGA);
- if(grOk != graphresult()) { /* La table est-elle pleine ? */
- printf("Erreur lors de l'installation du pilote utilisateur SGA.\n" );
- exit(1);
- }
- Driver = DETECT; /* Faire une détection automatique */
- initgraph(&Driver, &Mode, ""); /* La détection est annulée */
- if( grOk != graphresult() ) exit(1);
- outtext("Pilotes installés par l'utilisateur pris en charge");
- getchar();
- closegraph();
- }
Dernière mise à jour : Vendredi, le 26 Février 2021