Je développe des scripts VBA pour AutoCAD et rencontre des problèmes de compatibilité avec les DLL. Les références varient selon les versions d’AutoCAD, m’obligeant à les ajuster manuellement. J’aimerais savoir comment charger/décharger dynamiquement des DLL ou modifier les références directement via mon code VBA pour une meilleure gestion.
Il n’est pas possible de modifier dynamiquement les références aux DLL directement depuis le code VBA d’AutoCAD. Cependant, plusieurs stratégies permettent de gérer la compatibilité entre les versions et d’éviter les ajustements manuels constants :
-
Privilégier la liaison tardive (Late Binding) : C’est la méthode la plus robuste pour éviter les problèmes de références spécifiques aux versions.
- Déclarez vos objets génériquement comme
Objectau lieu de types spécifiques (ex:Dim acadApp As Objectau lieu deDim acadApp As AcadApplication). - Instanciez-les ensuite via
Set acadApp = GetObject(, "AutoCAD.Application")ouSet acadApp = CreateObject("AutoCAD.Application"). - Cette approche permet à votre code de fonctionner avec différentes versions d’AutoCAD sans nécessiter de références spécifiques aux bibliothèques de types (DLLs) au moment de la compilation, déportant la résolution des méthodes et propriétés à l’exécution.
- Déclarez vos objets génériquement comme
-
Centraliser et gérer manuellement les références :
- Placez les DLL nécessaires dans un dossier réseau partagé ou un emplacement local fixe et connu sur toutes les machines.
- Dans l’éditeur VBA (Outils > Références), référencez manuellement ces DLL depuis cet emplacement unique. Cette méthode nécessite une configuration initiale pour chaque environnement de développement ou de déploiement.
-
Automatiser la gestion des références via un script externe :
- Si la modification dynamique est absolument impérative, vous pouvez utiliser un script externe (par exemple, VBScript ou PowerShell) pour manipuler les références dans les fichiers VBA (.dvb) avant leur exécution. Cette méthode est plus complexe et nécessite des connaissances en scripting système pour modifier les propriétés du projet VBA.
-
Maintenir des versions de scripts spécifiques :
- Créez des versions distinctes de vos projets VBA, chacune configurée avec les références correctes pour une version spécifique d’AutoCAD.
- Chargez la version appropriée du script en fonction de l’environnement AutoCAD détecté au démarrage.