Lors de l'utilisation de contrôles tiers dans la programmation VB, le programme doit être capable de trouver les contrôles tiers utilisés dans le répertoire système ou le répertoire du programme. Il existe généralement deux méthodes : l'une consiste à transformer le contrôle et le programme en un package compressé et à le distribuer. L'inconvénient est que cela peut entraîner la perte du fichier de contrôle pendant le processus de propagation du programme. La seconde consiste à créer un programme d’installation. L’inconvénient est que le processus de production est fastidieux. Cet article décrit comment enregistrer des contrôles tiers dans le programme sous la forme de fichiers de ressources personnalisés. Après l'exécution du programme et avant d'utiliser les contrôles, les contrôles utilisés sont générés dans le répertoire du programme pour terminer le décorticage des contrôles à partir de l'exécutable. déposer.
Les étapes spécifiques sont les suivantes :
Étape 1 : copiez le contrôle à utiliser dans le répertoire du projet actuel, cliquez avec le bouton droit sur le contrôle, sélectionnez Propriétés et notez la taille du fichier. Notez que vous devez écrire le nombre spécifique en octets, et non en nombre de K, à des fins de programmation.
Étape 2 : Référencez et utilisez le contrôle normalement.
Étape 3 : Créez un nouveau fichier de ressources et ajoutez-le au projet. Ajoutez le contrôle tiers utilisé comme ressource personnalisée (CUSTOM) dans l'éditeur de fichier de ressources. Utilisez la valeur par défaut 101 pour le numéro de ressource. Si plusieurs contrôles sont utilisés, ajoutez-les respectivement aux éléments de ressource 101, 102... dans le fichier de ressources, et le code de shelling doit également être modifié en conséquence.
Étape 4 : Écrivez le code de shelling du contrôle pour lire les données du fichier de ressources et générer le contrôle dans le répertoire actuel du programme.
Le code est le suivant :
Private Const OCXSIZE = 57344 'La taille du contrôle à générer est de 57344 octets et le nom est CoolToolBar.ocx
Sous-principal()
Dim Ocx() As Byte 'OCX est un tableau de type Btye
Dim compteur aussi longtemps
Ocx = LoadResData(101, CUSTOM) 'Lire la ressource n°101 de la ressource personnalisée dans le tableau OCX
'Notez qu'il y a une erreur dans les instructions de chargement des ressources personnalisées dans l'aide de Microsoft. La ressource personnalisée est identifiée comme CUSTOM au lieu du numéro 10 mentionné dans l'aide.
Si Right(App.Path, 1) = ($%$43%^#ASD#2@$#f$%^) Then 'Lisez le chemin du programme, déterminez s'il s'agit du répertoire racine et traitez-le séparément
'Le programme est dans le répertoire racine
If Dir(App.Path & CoolToolBar.ocx) = Then 'Y a-t-il un contrôle dans le chemin du programme ? Sinon, le contrôle sera généré ?
'Écrire (générer) le contrôle (CoolToolBar.ocx) en mode binaire dans le répertoire où se trouve le programme principal
Ouvrez App.Path et CoolToolBar.ocx pour le binaire en tant que n°1
Pour Counter = 0 To OCXSIZE - 1 'Notez que, comme elle commence à 0 octet, la taille du fichier - 1 octet est la valeur finale
Mettez #1, , Ocx(Compteur)
Compteur suivant
Fermer #1
Terminer si
Autre
'Le programme n'est pas dans le répertoire racine
If Dir(App.Path & /CoolToolBar.ocx) = Then 'Y a-t-il un contrôle dans le chemin du programme ? Sinon, le contrôle sera généré ?
'Écrire (générer) le contrôle (CoolToolBar.ocx) en mode binaire dans le répertoire où se trouve le programme principal
Ouvrez App.Path & /CoolToolBar.ocx pour le binaire en tant que n°1
Pour Counter = 0 To OCXSIZE - 1 'Notez que, comme elle commence à 0 octet, la taille du fichier - 1 octet est la valeur finale
Mettez #1, , Ocx(Compteur)
Compteur suivant
Fermer #1
Terminer si
Terminer si
Form1.Visible = True 'Les contrôles utilisés dans le programme principal ont été générés, affichent le formulaire principal et entrent dans le programme principal.
Fin du sous-marin
Remarque : ajoutez le code ci-dessus au projet en tant que module et sélectionnez l'objet de démarrage comme Sub Main dans les paramètres de propriété projet-projet, qui est le code de shelling ci-dessus. Ensuite, compilez et générez un fichier EXE, copiez le fichier EXE sur d'autres ordinateurs sur lesquels le contrôle n'est pas installé et exécutez-le pour voir si la portabilité du contrôle est atteinte.