Cuando se utilizan controles de terceros en la programación de VB, el programa debe poder encontrar los controles de terceros utilizados en el directorio del sistema o en el directorio del programa. Generalmente hay dos métodos: uno es convertir el control y el programa en un paquete comprimido y distribuirlo. La desventaja de esto es que puede causar que el archivo de control se pierda durante el proceso de propagación del programa. La segunda es crear un programa de instalación. La desventaja es que el proceso de producción es engorroso. Este artículo describe cómo guardar controles de terceros en el programa en forma de archivos de recursos personalizados. Después de ejecutar el programa y antes de usar los controles, los controles usados se generan en el directorio del programa para completar el desgranado de los controles desde el ejecutable. archivo.
Los pasos específicos son los siguientes:
Paso 1: Copie el control que se utilizará en el directorio del proyecto actual, haga clic derecho en el control, seleccione Propiedades y observe el tamaño del archivo. Tenga en cuenta que debe escribir el número específico en bytes, no cuántos K, para fines de programación.
Paso 2: haga referencia y utilice el control normalmente.
Paso 3: cree un nuevo archivo de recursos y agréguelo al proyecto. Agregue el control de terceros utilizado como recurso personalizado (PERSONALIZADO) en el editor de archivos de recursos. Utilice el 101 predeterminado para el número de recurso. Si se utilizan varios controles, agréguelos a los elementos de recursos 101, 102... en el archivo de recursos respectivamente, y el código de descascarado también debe modificarse en consecuencia.
Paso 4: escriba el código de descascarado de control para leer los datos del archivo de recursos y generar el control en el directorio actual del programa.
El código es el siguiente:
Private Const OCXSIZE = 57344 'El tamaño del control a generar es 57344Byte y el nombre es CoolToolBar.ocx
Subprincipal()
Dim Ocx() As Byte 'OCX es una matriz de tipo Btye
Atenuar el contador todo el tiempo
Ocx = LoadResData(101, CUSTOM) 'Leer el recurso No. 101 en el recurso personalizado en la matriz OCX
'Tenga en cuenta que hay un error en las instrucciones para cargar recursos personalizados en la ayuda de Microsoft. El recurso personalizado se identifica como PERSONALIZADO en lugar del número 10 mencionado en la ayuda.
Si Right(App.Path, 1) = ($%$43%^#ASD#2@$#f$%^) Entonces 'Lea la ruta del programa, determine si es el directorio raíz y procese por separado
'El programa está en el directorio raíz
If Dir(App.Path & CoolToolBar.ocx) = Entonces '¿Hay un control en la ruta del programa? Si no, se generará el control.
'Escribe (genera) el control (CoolToolBar.ocx) en modo binario en el directorio donde se encuentra el programa principal
Abra App.Path y CoolToolBar.ocx para binario como n.° 1
Para Contador = 0 A OCXSIZE - 1 'Tenga en cuenta que debido a que comienza desde 0 bytes, el tamaño del archivo: 1 byte es el valor final
Ponga #1, , Ocx(Contador)
Siguiente contador
Cerrar #1
terminar si
Demás
'El programa no está en el directorio raíz
Si Dir(App.Path & /CoolToolBar.ocx) = Entonces '¿Hay un control en la ruta del programa? Si no, se generará el control.
'Escribe (genera) el control (CoolToolBar.ocx) en modo binario en el directorio donde se encuentra el programa principal
Abra App.Path y /CoolToolBar.ocx para binario como n.° 1
Para Contador = 0 A OCXSIZE - 1 'Tenga en cuenta que debido a que comienza desde 0 bytes, el tamaño del archivo: 1 byte es el valor final
Ponga #1, , Ocx(Contador)
Siguiente contador
Cerrar #1
terminar si
terminar si
Form1.Visible = True 'Se han generado los controles utilizados en el programa principal, se muestra el formulario principal y se ingresa al programa principal.
Subtítulo final
Nota: Agregue el código anterior al proyecto como un módulo y seleccione el objeto de inicio como Sub Main en la configuración de propiedades del proyecto, que es el código de desgranado anterior. Luego compile y genere un archivo EXE, copie el archivo EXE a otras computadoras que no tengan el control instalado y ejecútelo para ver si se logra la portabilidad del control.