PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


  • Présentation
  • Utilisation
  • Utiliser une DLL Visual Basic
  • Etape 1 : Enregistrement de la DLL
  • Etape 2 : Déclaration de la DLL
  • Etape 3 : Manipulation de la DLL
  • Etape 4 : Libération de la DLL
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Appel d'une DLL écrite en Visual Basic
Présentation
Le Visual Basic (comme beaucoup d'autres langages) permet de créer des DLL personnalisées. WINDEV permet simplement d'utiliser ces DLL depuis vos applications.
Une DLL écrite en Visual Basic est généralement une classe contenue dans un module Visual Basic et compilée en tant que DLL ActiveX. Cette classe dispose de :
  • certaines fonctionnalités (méthodes, fonctions, ...).
  • membres. Ces membres sont généralement accessibles grâce à des propriétés de sérialisation. Deux types de propriétés existent :
    • propriétés de type "Get" pour la récupération de la valeur d'un membre.
    • propriétés de type "Set" ou "Let" pour l'affectation d'un membre (en fonction du type du membre on utilisera l'une ou l'autre propriété).
Attention : Dans une application WINDEV, ces DLL particulières ne peuvent pas être appelées avec les fonctions API ou AppelDLL32. En effet, ces DLL ne répondent pas au standard WINAPI de Windows. Ces DLL s'utilisent dans les projets WINDEV comme des objets automation. Pour plus de détails, consultez objets Automation.
Utilisation

Utiliser une DLL Visual Basic

Pour utiliser une DLL écrite en Visual Basic dans un projet WINDEV :
  1. Enregistrez si nécessaire la DLL.
  2. Déclarez la DLL dans un traitement WLangage.
  3. Manipulez la DLL comme un objet OLE.
  4. Libérez la DLL.

Etape 1 : Enregistrement de la DLL

Si la DLL écrite en Visual Basic a été développée :
  • sur le poste sur lequel est exécuté le projet WINDEV : il n'est pas nécessaire d'enregistrer la DLL auprès de Windows.
  • sur un poste différent de celui sur lequel est exécuté le projet WINDEV : il est nécessaire d'enregistrer la DLL auprès de Windows en exécutant la ligne de commande "regsvr32 <NomDeLaDLL>".

Etape 2 : Déclaration de la DLL

Pour utiliser une DLL écrite en Visual Basic dans votre projet WINDEV, déclarez cette DLL dans le traitement qui l'utilise. Cette DLL doit être déclarée en tant qu'objet Automation. Pour plus de détails, consultez objet Automation.
<NomVariable> est un objet OLE "<nomduprojetVB>.<nomdumoduleVB>"
Par exemple :
MaDLLVisualBasic est un objet OLE "MonProjet.MonModule"

Etape 3 : Manipulation de la DLL

La DLL se manipule ensuite comme un objet automation (pour plus de détails, consultez objet Automation). Les appels aux méthodes et propriétés se font de la manière suivante :
Sans paramètres :
[ValeurRetour = ] NomVariable>>Fonction()
Avec paramètres :
[ValeurRetour = ] NomVariable>>Fonction(paramètre1 [, paramètres [, ...]])
Par exemple :
// Appel de la méthode QueryUser
Valeur est une chaîne = MaDLLVisualBasic>>QueryUser()

// Appel de la méthode DisplayInfo
MaDLLVisualBasic>>DisplayInfo("Ceci est un test")

Etape 4 : Libération de la DLL

La libération de la DLL s'effectue comme la libération d'un objet automation, avec le mot-clé Libérer. Pour plus de détails, consultez objet Automation.
Cette étape n'est pas obligatoire. En effet, à la fermeture de l'application ou de la fenêtre manipulant la DLL, la DLL sera automatiquement libérée.
Pour libérer la DLL, utilisez la syntaxe suivante :
libérer <NomVariable>
Par exemple :
// Libération de la DLL VB
libérer MaDLLVisualBasic
Version minimum requise
  • Version 9
Commentaires
Remarques sur l'utilisation de composants ActiveX VB

Remarque 1: Différents composants ActiveX... DLL et aussi EXE !

WinDev donne accès aux DLL ActiveX, mais aussi aux EXE ActiveX créés avec Visual Basic.


Remarque 2: Instanciation d'une classe globale

Qu'il s'agisse d'une classe dont la propriété d'instanciation est définie globale ou non, la manière de l'instancier est identique dans WinDev.

En revanche, il faut savoir qu'une classe dont l'instanciation est globale, implique qu'il n'y aura qu'une instance de cette classe pour le processus.

Si on instancie plusieurs fois une classe globale, la référence d'objet est toujours la même, c'est à dire qu'on manipule le même unique objet automation.
=JBO=
25 sep. 2010