Création d'une classe pour contenir des fonctions DLL
Le wrapping d'une fonction DLL fréquemment utilisée dans une classe managée est une stratégie efficace d'encapsulation des fonctionnalités de la plate-forme. Bien que cette opération ne soit pas obligatoire dans tous les cas, un wrapper de classe s'avère pratique, car la définition de fonctions DLL peut être lourde et sujette à erreurs. En cas de programmation avec Visual Basic ou C#, vous devez déclarer les fonctions DLL dans une classe ou un module Visual Basic.
Dans une classe, vous définissez une méthode statique pour chaque fonction DLL que vous souhaitez appeler. La définition peut inclure des informations supplémentaires, telles que le jeu de caractères ou la convention d'appel qui sont utilisés lors du passage des arguments des méthodes. Si vous ne renseignez pas ces informations, les paramètres par défaut sont alors sélectionnés. Pour obtenir une liste complète des options de déclaration et de leurs paramètres par défaut, consultez Création de prototypes dans du code managé.
Une fois le wrapping effectué, vous pouvez appeler les méthodes sur la fonction de la même manière que vous appelez des méthodes sur toute autre fonction statique. L'appel de plate-forme gère automatiquement la fonction exportée sous-jacente.
Lors du design d'une classe managée pour l'appel de plate-forme, prenez en compte les relations entre les classes et les fonctions DLL. Par exemple, vous pouvez effectuer l'une des actions suivantes :
déclarer des fonctions DLL dans une classe existante ;
créer une classe individuelle pour chaque fonction DLL, en maintenant les fonctions isolées et facilement localisables ;
créer une classe pour un ensemble de fonctions DLL associées pour former des regroupements logiques et réduire la charge mémoire.
Vous pouvez nommer la classe et ses méthodes à votre convenance. Pour voir des exemples montrant comment construire des déclarations .NET à utiliser avec l'appel de plate-forme, consultez Marshaling de données à l'aide de l'appel de plate-forme.
Voir aussi
Concepts
Consommation de fonctions DLL non managées
Identification des fonctions des DLL
Création de prototypes dans du code managé