Básico visual

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 22 de marzo de 2021; las comprobaciones requieren 14 ediciones .
básico visual
clase de idioma Procedural , Orientado a objetos , Orientado a componentes , Orientado a eventos
tipo de ejecución Compilado , Interpretado
Apareció en 1991
Desarrollador microsoft
extensión de archivo .bas, .cls, .frm, .vbp, .vbg
Liberar Visual Basic 6.0 (1998 ) ( 1998 )
sistema de tipos Escritura estática , Escritura fuerte , Escritura dinámica
Implementaciones principales estudio visual de microsoft
Dialectos Visual Basic para Aplicaciones , Visual Basic Script
sido influenciado QuickBasic , BÁSICO
influenciado Visual Basic .NET , REALbasic , Gambas , Xojo , Basic4ppc
Sitio web msdn.microsoft.com/ru-RU/vstudio/ms788229.aspx
 Archivos multimedia en Wikimedia Commons

Microsoft Visual Basic  es un lenguaje de programación y un entorno de desarrollo de software integrado desarrollado por Microsoft Corporation . El lenguaje Visual Basic heredó el espíritu, el estilo y en parte la sintaxis de su antecesor, el lenguaje BASIC , que tiene muchos dialectos. Al mismo tiempo, Visual Basic combina procedimientos y elementos de lenguajes de programación orientados a objetos y orientados a componentes . El IDE de VB incluye herramientas para el diseño de interfaz de usuario visual, un editor de código con IntelliSense y resaltado de sintaxis, y herramientas para depurar aplicaciones.

Visual Basic también es una buena herramienta para el desarrollo rápido (RAD) de aplicaciones de bases de datos para sistemas operativos de la familia Microsoft Windows . Muchos componentes listos para usar suministrados con el entorno están diseñados para ayudar al programador a comenzar de inmediato a desarrollar la lógica comercial de una aplicación comercial, sin desviar su atención a escribir código para iniciar el programa, suscribirse a eventos y otros mecanismos que VB implementa automáticamente.

Visual Basic fue reconocido por primera vez por desarrolladores serios después del lanzamiento de la versión 3. El reconocimiento final como una herramienta de programación completa para Windows llegó con el lanzamiento de la versión 5. La versión VB6, que es parte de Microsoft Visual Studio 6.0, se ha convertido en un producto verdaderamente maduro y rico en características.

Historial de desarrollo

Fecha de lanzamiento Versión Descripción
mayo de 1991 1.0 Visual Basic 1.0 para Microsoft Windows . La sintaxis QBasic se tomó como base del lenguaje , y la innovación, que luego trajo gran popularidad al lenguaje, fue el principio de comunicación entre el lenguaje y la interfaz gráfica. Este principio fue desarrollado por Alan Cooper ( Alan Cooper ) e implementado en el prototipo Tripod (también conocido como Ruby )
septiembre de 1992 1.0 Visual Basic 1.0 bajo DOS . No era totalmente compatible con la versión de Windows de VB, ya que era la próxima versión de QuickBASIC y se ejecutaba en modo de texto de pantalla. Es interesante notar que el paquete incluía una utilidad especial que convertía proyectos de esta versión en proyectos de Visual Basic 1.0 para Windows. Hizo que el código fuera lo más compatible posible con la versión de Windows, convirtió los formularios (aunque el resultado no fue satisfactorio debido a las diferencias en el modo de texto y gráficos) y también proporcionó comentarios en el código con sugerencias para seguir mejorando.
noviembre de 1992 2.0 Visual Basic 2.0. El entorno de desarrollo se volvió más fácil de usar y funcionó más rápido. La ventana Propiedades se ha movido a una lista separada. Resaltado de código fuente añadido .
1993 3.0 Visual Basic 3.0 se lanzó en las ediciones Standard y Professional. Además, se ha agregado al paquete un motor para trabajar con bases de datos de Access .
agosto de 1995 4.0 Visual Basic 4.0 era una versión que podía crear aplicaciones de Windows de 32 y 16 bits. Además, se hizo posible escribir clases en VB, y Visual Basic finalmente se convirtió en un compilador completo , lo que aumentó significativamente la velocidad de ejecución del programa. Se agregó soporte para controles OLE (OCX), reemplazando los antiguos controles VBX
febrero de 1997 5.0 Visual Basic 5.0: a partir de esta versión, se hizo posible, junto con las aplicaciones convencionales, desarrollar sus propios componentes COM . Al compilar dicho componente en un archivo OCX y entregarlo, fue posible proporcionar su objeto de control no solo al usuario final , sino también a otros desarrolladores, después de lo cual pudieron integrar este objeto en sus aplicaciones. El entorno integrado incluye compiladores P-Code y Native . Las aplicaciones son ejecutadas por una nueva máquina virtual implementada en la librería dinámica MSVBVM50.DLL. También en el primer trimestre de este año, Microsoft lanzará un producto en una edición especial de Visual Basic 5 Control Creation Edition (VB5CCE), que se especializa solo en el diseño de controles ActiveX .
Mediados de 1998 6.0 Visual Basic 6.0  : funcionamiento optimizado de la máquina virtual y movido a MSVBVM60.dll. Rendimiento mejorado del compilador nativo. Se agregaron nuevas funciones para trabajar con cadenas y matrices. Esta versión del lenguaje es la última en la línea de VB clásico. Microsoft cambió la política de lenguaje para la familia Basic y en lugar de desarrollar Visual Basic, se creó un lenguaje completamente nuevo, Visual Basic .NET .
2002 7.0 Primera versión de Visual Basic .NET . La característica más importante es que el código está completamente administrado por .NET Framework Common Language Runtime . Compatibilidad con versiones anteriores rotas con Visual Basic clásico (congelado como VB6).
abril de 2003 7.1 Microsoft ha actualizado Visual Basic .NET, optimizado el compilador. Publicado con la versión actualizada de .NET Framework 1.1.
2005 8.0 Incluido con Visual Studio 2005 . Requiere .NET Framework 2.0. Después del lanzamiento de Visual Basic .NET 2003, Microsoft eliminó el prefijo ".NET" del nombre del producto y la próxima versión se llama Visual Basic 2005.
2008 9.0 Incluido con Visual Studio 2008 . Requiere .NET Framework 3.5
2010 10.0 Incluido con Visual Studio 2010 . Requiere .NET Framework 4
2012 11.0 Incluido con Visual Studio 2012 . Requiere .NET Framework 4.5
2013 12.0 Incluido con Visual Studio 2013 . Requiere .NET Framework 4.5.1
2015 14.0 (no lanzado como 13.0) Incluido con Visual Studio 2015 . .NET Framework actualizado a la versión 4.6
2017 15.0 Incluido con Visual Studio 2017 .

Después del lanzamiento de la versión 6.0 de Visual Basic, los desarrolladores de Microsoft cambiaron significativamente la dirección del desarrollo de esta tecnología. Visual Basic .NET no te permite programar a la antigua, porque en realidad es un lenguaje completamente diferente, al igual que cualquier otro lenguaje de programación para la plataforma .NET . La individualidad del lenguaje, así como sus ventajas (simplicidad, velocidad de creación de programas, facilidad de uso de componentes listos para usar), cuando se usa en el entorno .NET, no son tan importantes como antes: todo se centra en las capacidades. de la propia plataforma .NET, en sus bibliotecas de clases. Por el momento (junio de 2015), tenemos que hablar de Visual Basic, como de las versiones clásicas del lenguaje 4.0 - 6.0, sus dialectos: Visual Basic for Applications (VBA) y Visual Basic Scripting Edition (VBScript) y el lenguaje para la plataforma .NET - Visual Basic .NET

En marzo de 2020, Microsoft declaró que admitiría Visual Basic en la plataforma unificada .NET 5.0, pero que ya no agregaría nuevas funciones ni evolucionaría el lenguaje [1] [2] .

Elementos del lenguaje

Tipos de datos

Las variables en Visual Basic se declaran con un operador Dim, seguido del nombre, luego la palabra clave Asy luego el tipo de variable. Si se omite el tipo, la palabra clave Asno se especifica y la variable se declara como Variant. Si no especifica una construcción Option Expliciten la sección de declaración, no se requiere una declaración explícita de variables y se crearán automáticamente en el primer uso. Este comportamiento puede llevar a una disminución en la velocidad de ejecución del programa, ya que las variables no declaradas serán de tipo Variant, así como a errores lógicos asociados al ingreso incorrecto del nombre de una variable existente o al riesgo de conflictos en la aplicación cuando el alcance de la variable no está del todo claro.

Dim strMessage As String 'declaración de una variable de tipo de carácter Dim iProductCount As Integer 'declaración de una variable de tipo entero Dim dt70YearsOfVictory As Date 'declaración de una variable para almacenar fecha y hora Dim otherValue ' tipo no especificado, variable de tipo Variant Public Sub Main () strMessage = "¡Hola mundo!" iProductCount = 125 dt70YearsOfVictory = # 5/9/2015 2:00:00 p . m . # ' fecha 9 de mayo de 2015 2:00:00 p . m . otherValue = 12.5 ' tipo de variable Variante, subtipo Doble. otherValue = "Wikipedia" ' tipo de variable Variante, subtipo Cadena. final sub

Tabla de tipos básicos de Visual Basic 6.0

Nombre Tamaño de tipo Tipo de datos Descripción
bytes 1 byte Byte. Diseñado para almacenar números enteros de 0 a 255. Si a una variable de este tipo se le asigna un valor que va más allá de estos límites, Visual Basic generará un error en tiempo de ejecución.
Entero 2 bytes Entero. Diseñado para almacenar números enteros en el rango − 32 768 a 32 767 . Sufijo para la designación de tipo "%".
Largo 4 bytes Entero largo. Diseñado para almacenar números enteros en el rango − 2 147 483 648 a 2 147 483 647 . Sufijo para la designación de tipo "&".
Único 4 bytes Punto flotante de precisión simple. Rango - 3.402823E38 a - 1.401298E−45 para valores negativos; 1.401298E −45 a 3.402823E38 para valores positivos. El sufijo para la designación de tipo "!"
Doble 8 bytes Punto flotante de doble precisión. Las variables de este tipo le permiten almacenar números de hasta 16 dígitos y hasta 300 caracteres. El rango de valores varía de -1.80E+308 a 1.80E+308. El sufijo es "#". Los cálculos con él son aproximados, ya que se utiliza la representación binaria del número según el estándar IEEE 754 .
Decimal 16 bytes Entero escalado. Este tipo utiliza la representación decimal de los números. Los cálculos con él, así como con el tipo Moneda, son exactos. El rango de valores es de -7.92E+28 a 7.92E+28. No puede declarar directamente una variable de tipo Decimal. Solo se puede usar como un subtipo de Variant, y una variable se puede convertir a ese tipo usando la función de conversión CDec.
booleano 2 bytes El tipo de datos booleano puede almacenar solo dos valores: verdadero o falso, verdadero o falso. Un valor verdadero en VB corresponde a un número entero −1, y un valor falso es igual a 0, y con la conversión de tipos implícita, cualquier valor numérico que no sea cero se trata como verdadero. Este comportamiento hace posible el uso de los operadores lógicos AND, OR, NOT, XORno solo para álgebra booleana, sino también para operaciones bit a bit. [3]
Cuerda 10 + 2*N bytes Cadena de longitud variable. Diseñado para almacenar información de cadenas (caracteres). La cadena en sí se almacena en codificación Unicode , por lo que cada carácter se codifica con 2 bytes. Si observa el tipo desde el interior, se utilizan 4 bytes adicionales para almacenar un puntero a la cadena, 4 bytes para el tamaño de la cadena y la cadena en sí termina con caracteres nulos (otros 2 bytes). Por lo tanto, el tamaño máximo de fila puede ser de hasta 2 GB. Sufijo como "$".
Cadena*N 2*N bytes Una cadena de longitud constante. Al igual que el tipo String, almacena datos de caracteres, excepto que el tamaño de los datos es fijo y se especifica cuando se declara la variable. Si el valor de la cadena es demasiado grande, se trunca al tamaño requerido. Si la cadena es más pequeña de lo requerido, entonces el tamaño se iguala agregando un carácter de espacio. Cabe señalar que las cadenas y matrices fijas, así como las estructuras, no pueden tener más de 64 kb.
Fecha 8 bytes El tipo de datos le permite almacenar valores de fecha y hora entre la medianoche del 1 de enero de 100 y la medianoche del 31 de diciembre de 9999. Si solo se asigna un valor de fecha a una variable, entonces la hora es 00:00. Una unidad entera representa un día. Esto le permite sumar y restar fechas usando solo operadores matemáticos, pero VB proporciona funciones de fecha especializadas para lograr esto.
Objeto 4 bytes Se utiliza para almacenar una referencia a un objeto. La asignación a una variable para este tipo se realiza mediante el método Set. El tipo en sí es análogo a IDispatch; almacena una referencia a la interfaz de IDispatch. Para cualquier objeto, debe usar IUnknown.
Divisa 8 bytes Monetario. Este tipo puede tener hasta 4 dígitos después del punto decimal y hasta 14 antes. Los valores son números decimales, no binarios, como es el caso de los tipos de punto flotante de precisión simple y doble. Por lo tanto, los cálculos se realizarán con precisión. El rango de valores es −922337203685477.6000 a 922337203685477.6000 . Este tipo es el preferido para los cálculos financieros. Sufijo "@"
Variante 16 bytes/22 bytes+N bytes/N-bytes Una variable de tipo Variant puede contener datos de cualquier tipo, incluidas referencias a objetos, tipos definidos por el usuario y matrices. Visual Basic realiza automáticamente las transformaciones de datos necesarias . Un subtipo que contiene un número requiere 16 bytes de memoria, y para almacenar datos de cadena, 22 bytes + la longitud de la propia cadena. El rango de valores es igual al rango de valores del subtipo. Este tipo es el más lento en términos de velocidad de ejecución, ya que lleva tiempo desempaquetar y empaquetar valores.

Operadores

El lenguaje Visual Basic contiene muchos operadores que son responsables de las operaciones aritméticas, las operaciones de comparación y asignación y la concatenación .

operador de asignación

  • El signo igual (=) se utiliza para asignar un valor a una variable. También es posible utilizar la palabra clave Letantes del nombre de la variable. En las primeras versiones del lenguaje BASIC, era obligatorio, pero en Visual Basic se deja por compatibilidad. Para asignar un tipo de objeto a una variable, se requiere la presencia de la palabra clave Set. Ejemplos: nVar = 10, Let iCount = 20, Set refDouble = objClass.

La asignación múltiple, como se implementa en C, no es posible. A = B = Cno significa que A, By Ctendrá valores iguales. VB evaluará la expresión y asignará el resultado B = Ca la variable , o , 0 o −1, según el tipo. ATrueFalse

Operadores aritméticos

  • suma (+), resta (-), multiplicación (*), división (/)
  • exponenciación (^). Ejemplo:2 ^ 3 = 8
  • División entera (\). Divide el primer número por el segundo, descartando (no redondeando) la parte fraccionaria. Ejemplo:5 \ 2 = 2
  • división módulo (Mod). Divide el primer número por el segundo, devolviendo solo el resto de la división. Ejemplo:5 Mod 2 = 1

Operadores de comparación

  • igualdad (=). Ejemplo:If nVar = 10 Then
  • mayor que y menor que (> y <). Ejemplo:If nVar > 10 Then
  • mayor o igual que y menor o igual que (>= y <=). Ejemplo:If nVar >= 10 Then
  • no es igual (<>). Ejemplo:If nVar <> 10 Then
  • comparación de objetos (Is). Determina si las variables de objeto se refieren al mismo objeto oa diferentes. Ejemplo:If obj1 Is obj2 Then
  • operador de similitud (Like). Compara un objeto de cadena con un patrón y determina si el patrón coincide. Ejemplo:If strEmail Like "*@*.*" Then

Operadores logicos

  • Y lógico (Y): ambas partes de la expresión deben ser verdaderas para que la expresión completa sea verdadera. Ejemplo:If (2 * 2 = 4) And (2 * 3 = 6) Then
  • OR lógico (O) - al menos una de las expresiones debe ser verdadera. Ejemplo:If (2 * 2 = 5) Or (2 * 2 = 4) Then
  • negación lógica (No) - devuelve Truesi la condición es falsa y viceversa. Ejemplo:If Not(2 * 2 = 5) Then
  • excepción lógica (Xor) - en la expresión E1 Xor E2devuelve Truesi solo E1 = Trueo solo E2 = True, de lo contrario - False.
  • Equivalencia (Eqv) − Evalúa la equivalencia de dos expresiones, devuelve Truesi tienen el mismo valor.
  • implicación (Imp) — devuelve Falsesi E1 = Truey E2 = False, de lo contrario — True.

Operadores de concatenación

  • El operador (+) se usa para concatenar cadenas. Si ambas partes de la expresión son de tipo carácter, la operación de concatenación de cadenas se realizará correctamente. Si una de las partes de la expresión tiene un tipo numérico, pero la otra parte no se puede convertir correctamente a un número, se produce un error de conversión de tipos. Para evitar tales situaciones, se recomienda usar los operadores apropiados para la conversión de tipos o usar el operador (&) para concatenar cadenas.
  • El operador (&) convierte automáticamente expresiones y valores en un tipo de cadena. Por ejemplo, la expresión str = "10" & 20da el resultado "1020", no "30". Si usamos el operador (+) en esta expresión, VB convertiría la expresión "10" al tipo numérico 10 y, si tiene éxito, realizaría una suma aritmética.

Estructuras de control

En Visual Basic, como en muchos lenguajes de programación, existen construcciones que controlan el orden en que se realizan las acciones. Algunas de las construcciones, como GoSuby Return, se mantienen por compatibilidad con versiones anteriores del lenguaje BASIC, pero la implementación como procedimientos separados puede proporcionar un código más estructurado.

Operador de sucursal

Sintaxis general:

'Escriba una sentencia de bifurcación en una línea If < condition > Then [ action_when_condition_is_true ] 'Esta entrada le permitirá realizar acciones dependiendo de la veracidad de la condición If < condition > Then [ action_when_condition_is true ] Else [ action_when_condition_false ] 'Escriba una declaración de ramificación de varias líneas If < condición > Entonces [ acción_cuando_condición_es verdadera ] ElseIf < condición2 > Entonces [ acción_cuando_condición2_verdadera ] ElseIf < condiciónN > Entonces [ acción_cuando_condiciónN_verdadera ] Else [ acción_cuando_condición_falsa ] End If Operador de selección

Sintaxis general:

Select Caso < valor_probado > 'Variable o expresión que se probará contra una o más condiciones Caso < valor_1 > ' La acción se realiza si el valor que se está probando coincide con el valor 1 [ acción_1 ] Caso < valor_2 > , < valor_3 > , < valor_3 > ' Pruebas lista de valores. Si se encuentra una coincidencia, entonces se ejecuta la acción [ acción_2 ] Caso < valor_5 > Para < valor_6 > 'Comprueba el rango de valores [ acción_3 ] Caso es >= < valor_7 > 'Comprueba el valor para la verdad con la condición [ action_4 ] Case Else 'La acción se realiza si ninguna de las condiciones falla [ action_5 ] End Select

Ejemplo: mostrar diferentes mensajes dependiendo del valor de una variable

'Ingresemos una variable y le demos un valor manualmente Dim X As Double X = InputBox ( "Ingrese el valor numérico de la variable X" ) Select Case X 'Comprobar si nuestro valor se ajusta a alguna función imaginaria Case Is < 5 , Is >= 20 , 12 To 15 ' Rango de valores válidos MsgBox "Un valor válido para alguna función" Case Else 'Valores no válidos MsgBox " El valor no se puede utilizar en alguna función" End Select Bucle con contador

Sintaxis general:

Para < variable > = < valor > Para < valor_final > [ Paso < valor_de_paso >] [ bloque_de_instrucciones ] [ Salir para ] 'Salir del bucle Siguiente [ variable ]

Ejemplo: calcular la suma de números pares del 1 al 100

Para I = 0 a 100 Paso 2 Suma = Suma + I Siguiente Ciclo conjunto

Sintaxis general:

Para cada < variable > En < colección > [ bloque_de_instrucciones ] [ Salir para ] 'Forzar salida del ciclo Siguiente [ variable ]

Ejemplo: Muestra cada elemento en una matriz

Dim strItem como variante Para cada strItem en Array ( "Apple" , "Pear" , "Plum" ) Imprimir strItem Siguiente Bucle condicional

Sintaxis general:

Do While < condición > 'El bucle se ejecuta cuando la condición es verdadera [ bloque_instrucción ] [ Exit Do ] 'Salida forzada del bucle Hacer hasta < condición > 'El ciclo se ejecuta cuando la condición es falsa [ bloque_de_instrucciones ] [ Salir de hacer ] Bucle Mientras que < condición > 'El ciclo se ejecuta cuando la condición es verdadera [ bloque_de_instrucciones ] Wend

Ejemplo: Leer un archivo de texto línea por línea

Abra "archivo.txt" para la entrada como n.º 1 Hacer mientras no EOF ( 1 ) 'Devuelve verdadero si se espera el final del archivo Entrada de línea n.º 1 , strBuffer 'Lee la línea en la variable de depuración . Imprimir strBuffer 'Salida a la ventana de depuración Loop Close # 1 Bucle con postcondición

Sintaxis general:

Hacer [ bloque_de_instrucciones ] [ Salir de hacer ] Bucle Mientras < condición > Hacer [ bloque de instrucciones ] [ Salir de hacer ] Bucle hasta < condición >

Procedimientos y funciones

Las subrutinas son uno de los elementos básicos del lenguaje. Son procedimientos y funciones.

  • El procedimiento comienza con un operador Suby termina con End Sub, entre los cuales se coloca el código. Los procedimientos pueden ser llamados por el propio Visual Basic, por ejemplo, implementados como controladores de eventos, o por otros procedimientos y funciones. El nombre del procedimiento de evento consta del nombre del objeto, el guión bajo y el nombre del evento:
Private Sub Command1_Click () 'El evento se activará cuando se haga clic en el botón de control ... End Sub Private Sub Form_MouseMove ( Button As Integer , Shift As Integer , X As Single , Y As Single ) 'Llamado cuando el puntero del mouse se mueve en la ventana del formulario ... End Sub

Visual Basic realmente implementa el bucle de mensajes de Windows. En el ejemplo de formulario, el ciclo filtrará el mensaje WM_MOUSEMOVEy llamará automáticamente al procedimiento Form_MouseMovecon los parámetros: qué botones del mouse se presionaron, las coordenadas del puntero. Este mecanismo oculta al desarrollador algunos aspectos de la programación en el entorno de Windows, lo que le permite comenzar a escribir código comercial de inmediato. En la mayoría de los casos, la clase de tareas a resolver no requerirá que el programador conozca los mensajes y las funciones de la ventana. Pero Visual Basic no impide que el programador implemente el manejo de mensajes de ventana. Esto permite un enfoque muy flexible para crear aplicaciones, pero también requiere suficiente experiencia para escribir dicho código, lo que puede hacer que el programa se ejecute de manera inestable hasta que se bloquee.

  • Las funciones en VB comienzan con una palabra clave Functiony terminan con End Function. El valor de retorno de la función se asigna a una variable que coincide con el nombre de la función. Para interrumpir prematuramente la ejecución de un procedimiento o función, existen operadores especiales Exit Suby Exit Function. Visual Basic 6.0 contiene funciones integradas para trabajar con el sistema de archivos, fecha y hora, funciones matemáticas, funciones para interactuar con el sistema, funciones para trabajar con cadenas, funciones para tipos de conversión y funciones para cálculos financieros. También hay funciones no documentadas que le permiten trabajar, por ejemplo, con punteros.

Un ejemplo de una función para resolver una ecuación cuadrática:

Private Sub Main () Dim RetX1 como doble , RetX2 como doble Dim strStatus como cadena strStatus = SolveQuadraticEquation ( 4 , 6 , 2 , RetX1 , RetX2 ) 'Resuelve la ecuación 4*X^2 + 6*X - 2 = 0 'Mostrar respuesta MsgBox "Resolución: " & strStatus & vbCrLf & _ "X1 = " & RetX1 & vbCrLf & _ "X2 = " & RetX2 , vbInformation End Sub ' Función de resolución de ecuación cuadrática Función pública SolveQuadraticEquation ( ByVal A As Double , _ ByVal B As Double , _ ByVal C As Double , _ ByRef X1 As Double , _ ByRef X2 As Double ) As String Dim D As Double D = ( B * B ) - ( 4 * A * C ) 'Obtenga el valor del discriminante Si D >= 0 Entonces X1 = ( - B - Sqr ( D )) / ( 2 * A ) ' Calcula las raíces de la ecuación X2 = ( - B + Sqr ( D )) / ( 2 * A ) SolveQuadraticEquation = "Solución encontrada" 'La función devuelve un mensaje sobre la solución Else SolveQuadraticEquation = "Discriminante < 0. Sin raíces" End If End Function

En este ejemplo, puede ver el modificador delante de los ByValargumentos y . Esto asegura que los parámetros a la función se pasarán por valor . El modificador , por otro lado, pasa el valor por referencia . Para este tipo de modificador, la función puede modificar los valores de las variables pasadas como parámetros. Visual Basic, por defecto, siempre pasa valores por referencia si no se especificó ninguno de los modificadores. ABCByRef

Módulos y clases

El código del programa en Visual Basic se almacena en módulos. Solo hay tres tipos de módulos: módulo de formulario (Form), módulo estándar (Module) y módulo de clase (Class Module).

  • El módulo de formulario (extensión de archivo *.frm) es la base de la mayoría de las aplicaciones de Visual Basic. El módulo de formulario contiene procedimientos de manejo de eventos, procedimientos generales y los declarados a nivel de formulario: variables, constantes, tipos y procedimientos externos. Si abre el módulo de formulario en un editor de texto, puede ver las descripciones del formulario y sus controles, incluidas sus propiedades. El código colocado en un módulo de formulario puede hacer referencia a otros formularios u objetos de aplicación.
  • Un módulo estándar (extensión de archivo *.bas) es un contenedor para procedimientos, funciones y declaraciones a los que normalmente acceden otros módulos de aplicación. Pueden contener una variable global (accesible para toda la aplicación) o declaradas a nivel de módulo: variables, constantes, tipos, procedimientos externos y globales. El código colocado en un módulo estándar puede no estar relacionado con una aplicación en particular; si no usa referencias de módulo de formulario o nombres de control, el módulo estándar se puede usar en otras aplicaciones.
  • El módulo de clase (extensión de archivo *.cls) es la base de la programación orientada a objetos en Visual Basic. El módulo de clase se utiliza para crear nuevos objetos. Estos objetos pueden tener sus propias propiedades, métodos y eventos. De hecho, un formulario es solo un módulo de clase que puede contener controles colocados en él y mostrarlos en la pantalla. Las clases pueden contener procedimientos especiales Class_Initializey Class_Terminate, que son efectivamente constructores y destructores .

Programación orientada a objetos

La interacción simple entre objetos es uno de los componentes básicos del paradigma de Visual Basic. El objeto en sí mismo se llama una instancia de la clase . El modelo de objetos de VB proporciona varias clases para trabajar con formularios, controles, portapapeles, colecciones, la pantalla, etc. Para interactuar con otros objetos , la clase proporciona al desarrollador una interfaz que consta de propiedades , métodos y eventos .

La creación de un nuevo objeto a partir de una clase es posible mediante vinculación anticipada o tardía. Para el enlace temprano, la palabra clave se usa Newantes del nombre de la clase. Para el enlace tardío, se utiliza una función CreateObjectque devuelve una referencia al objeto creado. Las referencias se asignan a variables de tipo Objectmediante el operador Set. El acceso a los métodos y propiedades de una clase ocurre a través del operador punto ., que se coloca inmediatamente después del nombre de la variable del tipo de objeto. Si la clase contiene eventos, las variables se declaran con la palabra clave WithEvents, por lo que los procedimientos de manejo de eventos estarán disponibles.

El ejemplo muestra cómo el programa interactúa con la biblioteca Microsoft Scripting Runtime , que proporciona objetos para trabajar con el sistema de archivos:

Public Sub Main () Dim objFSO As New FileSystemObject 'Crea una instancia de la clase usando la instrucción New Dim objWindows As Folder Establezca objWindows = objFSO . GetFolder ( Environ ( "SYSTEMROOT" )) 'Llama al método de clase GetFolder y asigna una referencia al objeto resultante MsgBox "Carpeta de Windows:" & objWindows . Ruta 'Lee las propiedades de la clase MsgBox "Fecha de creación: " & Formato ( objWindows . DateCreated , "YYYY-MM-DD H:mm:ss" ) Dim sTextFilePath como cadena Dim objTS como TextStream sTextFilePath = objFSO . BuildPath ( Environ ( "TEMP" ), "Test file.txt" ) 'Método con dos parámetros devuelve un valor de tipo String Establezca objTS = objFSO . CreateTextFile ( sTextFilePath , True ) objTS . Escribe "¡Hola Wikipedia!" objTS . cerca objFSO . DeleteFile sTextFilePath , Verdadero Set objFSO = Nothing 'La asignación de Nothing libera la referencia y el objeto puede llamar al procedimiento destructor Set objWindows = Nothing 'VB llama automáticamente al destructor cuando ya no se hace referencia al objeto Set objTS = Nothing End Sub

Visual Basic permite al desarrollador crear nuevas clases por sí mismo. A diferencia de otros lenguajes de programación como Java y C++, Visual Basic no tiene soporte completo para programación orientada a objetos.

Como sabe, se necesita una clase abstracta para proporcionar una plantilla para una interfaz con otras clases. En Visual Basic, las clases que tienen miembros de clase pero ninguna implementación se pueden usar como clases abstractas, pero en realidad no lo son. Siempre puede crear objetos a partir de clases de Visual Basic, incluso si no contienen código [4]

El principio de encapsulación opera en Visual Basic. PublicPara delimitar el acceso a los miembros de la clase , los modificadores Privatey Friendse utilizan al describir procedimientos, funciones, constantes, variables y tipos definidos por el usuario.

No se admite la herencia de implementación. Visual Basic solo proporciona compatibilidad con la herencia de interfaz a través deImplements. Al heredar una interfaz, cualquier clase puede actuar como la clase base de la interfaz. En general, cualquier clase puede actuar como clase base de una interfaz.

El polimorfismo solo se aplica a través de interfaces, ya que VB no admite la herencia. La implementación del polimorfismo se muestra en el ejemplo de las clases Car y Aircraft que implementan la interfaz de la clase Transport .

'Clase ITransport.cls Función pública GetMaxSpeed ​​() Como función de extremo largo 'Clase CAuto.cls implementa ITransport 'Inherit interfaz Función privada ITransport_GetMaxSpeed ​​() As Long 'Implementación del método ITransport_GetMaxSpeed ​​​​= 240 Función final 'Clase CFly.cls implementa ITransport Función privada ITransport_GetMaxSpeed ​​( ) Mientras ITransport_GetMaxSpeed ​​​​= 700 Función final 'Módulo estándar Program.bas Opción Explícita Public Sub Main () Dim T As ITransport 'Declara una variable de tipo ITransport Set T = New cAuto WhatTransportSpeed ​​​​T 'Pasamos una referencia a un procedimiento que llamará al método de clase deseado, dependiendo de la implementación Establecer T = Nuevo cFly WhatTransportSpeed ​​​​T End Sub 'La función tiene un argumento que toma una referencia a un objeto que implementa la interfaz ITransport Public Sub WhatTransportSpeed ​​​​( Transport As ITransport ) MsgBox "Velocidad máxima:" & Transport . ObtenerVelocidadMáxima () End Sub

Diseñador de formularios

Editor de código

El editor de código es un editor de texto con características adicionales para una entrada de código fuente fácil y rápida:

  • Resaltado de sintaxis del código fuente.
  • División horizontal de la ventana en 2 paneles.
  • Muestra todo el código fuente o un procedimiento específico.
  • Una enumeración de objetos usados ​​en el programa con una lista de eventos que el desarrollador puede manejar.
  • Cambio automático de mayúsculas y minúsculas. La primera letra de las palabras clave está en mayúsculas, el caso de los nombres de las variables se cambia automáticamente para que coincida con el caso que se especificó cuando se declararon.
  • Autocompletado de nombres de funciones, procedimientos, variables usando IntelliSense .
  • Comprobación del código en busca de errores de sintaxis.
  • Tabulación de bloques inteligente

Depuración

El entorno de desarrollo integrado proporciona al programador ricas oportunidades para depurar programas. Una de las ventajas de Visual Basic es la capacidad de cambiar el código fuente del programa en gran medida sin volver a compilarlo y reiniciarlo por completo. Durante los procedimientos de depuración, el desarrollador tiene la oportunidad de mover el marcador que indica la instrucción que se está ejecutando actualmente, tanto hacia adelante (saltando parte del código) como hacia atrás, obligando a VB a volver a ejecutar las instrucciones que ya se han procesado.

Entre otras cosas, el entorno proporciona herramientas de depuración como la ventana Inmediato, la ventana de locales, la ventana de observación y el visor de pila de llamadas . Estas herramientas avanzadas permiten al programador realizar un análisis profundo del algoritmo en estudio en la aplicación que se está depurando.

Visual Basic ingresa al modo de depuración cuando se cumple una de las siguientes condiciones:

  • Al ejecutar instruccionesStop
  • Al ejecutar una instrucción que tiene establecido un punto de interrupción (breakpoint)
  • Cuando se produce un error para el que no se encuentra un controlador de errores adecuado
  • Presionando teclas de acceso rápidoCtrl + Break
  • programación conveniente

Compilación

El entorno de desarrollo integrado viene con un compilador en P-Code (P-code) , un compilador nativo Back-End compatible con x86 y un enlazador (linker). La presencia de dos compiladores hace posible atribuir Visual Basic a un lenguaje tanto compilado como interpretado. Independientemente del compilador elegido, las aplicaciones requieren la ejecución de la máquina virtual de tiempo de ejecución de Visual Basic, que es la biblioteca MSVBVMXX.DLL, donde XX es la versión del idioma [5]

  • El código P permite que la aplicación se ejecute en una máquina virtual independiente del hardware, que traducirá el pseudocódigo del programa al código de máquina del procesador en tiempo real. Teóricamente, este enfoque permite implementar la portabilidad de las aplicaciones a nuevas plataformas de hardware sin necesidad de modificar el código fuente de los propios programas. Una de las principales ventajas asociadas con la compilación en P-Code es la modificación "en caliente" del código fuente en modo de depuración . Visual Basic, cuando está en modo de depuración, siempre compila el programa en código P, luego se puede suspender la ejecución, el programador realiza cambios significativos en el código fuente y luego la ejecución continúa: no se requiere una recompilación completa y reinicio de la aplicación. El compilador crea un archivo ejecutable en formato PE , pero en lugar de instrucciones para un procesador real, contiene el código que inicializa la máquina virtual y el bytecode de la aplicación. La principal desventaja de compilar en código P es la baja velocidad de ejecución del programa, ya que la mayor parte del tiempo se dedica a traducir el programa a código de máquina.
  • La compilación nativa se hizo posible con el lanzamiento de Visual Basic 5.0. Este compilador le permite crear código de alto rendimiento en comparación con las aplicaciones compiladas en código P. La mayoría de las instrucciones se compilan en código de máquina: operaciones aritméticas, construcciones de control, pero acciones como llamar a funciones de lenguaje integradas, trabajar con cadenas y controlar errores serán realizadas por la biblioteca de tiempo de ejecución de Visual Basic. Por lo tanto, a pesar de estar compilada en código nativo, la aplicación requerirá la máquina virtual de Visual Basic para ejecutarse. Además, llamar con frecuencia a funciones desde la biblioteca de tiempo de ejecución conduce a un deterioro en la velocidad de ejecución de la aplicación. Pero a pesar de todas las deficiencias, el compilador nativo proporciona una velocidad de ejecución de código aceptable. El compilador contiene varias opciones de optimización. En la pestaña de compilación del proyecto, puede deshabilitar algunas operaciones de verificación: matriz fuera de los límites, desbordamiento de enteros, etc. La configuración adecuada de estos parámetros permite al desarrollador obtener un aumento de rendimiento adicional en la aplicación que se está desarrollando.

Despliegue

Microsoft Visual Basic 6.0 viene con el asistente de paquete e implementación [6] para crear paquetes de instalación basados ​​en un proyecto de Visual Basic. En comparación con su conocido predecesor, el Asistente de configuración, el Asistente de P&D proporciona una nueva funcionalidad, pero desafortunadamente la nueva herramienta contiene algunos errores. Uno de los problemas de esta aplicación es un error de conversión de fecha si la configuración regional establecida en el sistema operativo del usuario es diferente a la estadounidense. Existen aplicaciones de terceros que brindan herramientas más avanzadas para administrar paquetes de instalación.

También es posible instalar aplicaciones VB mediante una simple copia, que se reduce a unos pocos pasos:

  • Si no hay un archivo de tiempo de ejecución de la aplicación de Visual Basic (MSVBVM60.DLL) en el directorio del sistema del sistema operativo, primero debe copiarlo allí.
  • Si la aplicación contiene controles no estándar, como controles ActiveX , primero debe copiarlos en el directorio del sistema y registrarlos en el registro del sistema de Microsoft Windows. El registro de componentes se puede automatizar, por ejemplo, ejecutando un comando regsvr32.exey pasando la ruta completa al archivo, o programáticamente llamando directamente al método DllRegisterServerque implementa el componente compatible con COM .
  • Cree una carpeta de programa, copie el archivo ejecutable, si es necesario, cree un acceso directo a la aplicación en el escritorio del usuario.

Funciones adicionales

ActiveX (Controles OCX)

A partir de la versión VB 5.0, el desarrollador tiene la oportunidad no solo de usar componentes ActiveX listos para usar , sino también de crear los suyos propios. VB se encarga de todo el trabajo de crear código auxiliar que está diseñado para registrar información sobre el componente en el registro del sistema, implementar la interfaz IDispatch, crear GUID únicos utilizados como identificadores de clases (CLSID), interfaces (IID) y bibliotecas de tipos ( LÍBIDA). Gracias a este enfoque, el programador solo necesita crear clases con la funcionalidad necesaria.

La creación de nuevos GUID de clase e interfaz depende de la opción de compatibilidad establecida en la pestaña de propiedades del proyecto. Puede tomar uno de tres estados:

  • Sin compatibilidad: Visual Basic genera nuevos identificadores de clase e interfaz cada vez que se crea o compila el proyecto. Cada compilación de un componente solo se puede usar con aplicaciones creadas para funcionar con una versión específica de ese componente, es decir, si la clase y el nombre del proyecto no se cambian en el momento de la compilación, se generarán nuevos identificadores y sobrescribirán la información en el registro. , por lo que las aplicaciones que hacen referencia a identificadores antiguos no podrán iniciarse.
  • Compatibilidad a nivel de diseño: el propósito de esta configuración es mantener la compatibilidad durante las pruebas, de modo que después de crear el componente, el comportamiento sea el mismo que si la configuración se hubiera establecido sin compatibilidad.
  • Compatibilidad binaria: al compilar un proyecto, Visual Basic crea nuevos identificadores según sea necesario. Se conservan los identificadores de clase e interfaz de versiones anteriores del componente. Cambiar la implementación de un método no cambia los identificadores. Además, agregar una nueva clase y métodos no cambia la interfaz existente. Por lo tanto, las aplicaciones antiguas pueden usar la interfaz anterior del componente y las aplicaciones nuevas pueden hacer referencia a la nueva versión de la interfaz. Si se cambia o elimina un método de la interfaz, VB advertirá sobre la inconsistencia con la interfaz del componente y recomendará volver a compilar las aplicaciones. [7]

Una vez completada la compilación, la salida será un archivo de biblioteca binaria de acuerdo con la especificación COM . Este componente implementa al menos 2 interfaces : IUnknown e IDispatch. La biblioteca de tipos ( TLB ) se integrará dentro de los recursos del ejecutable. Además, se crean archivos con información útil, como EXP y LIB.

API de Windows (interfaz de programación de aplicaciones)

Visual Basic proporciona funciones de lenguaje para declarar y llamar a funciones desde bibliotecas de vínculos dinámicos (DLL). Este mecanismo le permite ampliar las aplicaciones mediante el uso de bibliotecas adicionales proporcionadas por otros desarrolladores, incluidas las escritas en varios lenguajes de programación. El sistema operativo Microsoft Windows proporciona un conjunto de bibliotecas de este tipo.

La sintaxis general para la declaración de una función y un procedimiento es la siguiente:

[ Público | Private ] Declare Sub < nombre_procedimiento > lib "nombre_biblioteca_dinámica" [ Alias ​​​​"alias" ] [ ( parámetros ) ] [ Público | Private ] Declare Function < nombre_función > lib "nombre_biblioteca_dinámica" [ Alias ​​​​"alias" ] [ ( parámetros ) ] [ Como tipo_retorno ]

Los alias deben especificarse en varios casos: uso de identificadores reservados de Visual Basic en el nombre de la función, el nombre contiene caracteres no válidos o el entorno no puede interpretarlo correctamente. Las funciones llamadas deben ser compatibles con la convención de llamadas StdCall .

Al pasar un parámetro con el tipo String a la función WINAPI, VB convierte automáticamente la codificación de Unicode a ANSI, después de ejecutar la función, se realiza la conversión inversa de ANSI a Unicode. Para evitar la conversión automática de cadenas, los argumentos de la función deben declararse como Long y se debe pasar un puntero a una cadena mediante la función StrPtr, por lo que se puede optimizar el rendimiento de una aplicación que realiza múltiples llamadas a funciones.

Un ejemplo de llamar a la API de Windows para obtener la ruta completa al directorio de Windows y mostrar un mensaje en la pantalla:

Función de declaración privada GetWindowsDirectory Lib "kernel32.dll" Alias ​​​​"GetWindowsDirectoryA" ( ByVal buffer As String , ByVal nSize As Long ) As Long Función de declaración privada MessageBox Lib "user32.dll" Alias ​​​​" MessageBoxA" ( ByVal hWnd As Long , ByVal lpText As String , ByVal lpCaption As String , ByVal wType As Long ) As Long MB_ICONASTERISK de const . privada Mientras dure = 64 Public Sub Main () Dim buffer As String 'La variable en la que se recibirá el resultado de la función. Dim ret Len mientras buffer = String ( 256 , vbNullChar ) lens = GetWindowsDirectory ( buffer , Len ( buffer )) 'Function call buffer = Left ( buffer , lens ) MessageBox 0 & , "SO instalado en el directorio:" & buffer , "Información" , MB_ICONASTERISK ' Llamada de subfunción final

Cabe señalar que llamar a las funciones WINAPI está asociado con ciertos acuerdos internos, a saber, cómo la función devolverá un resultado, qué estructuras debe pasar, la cantidad de argumentos y sus tipos, que estarán contenidos en el valor de retorno. Los desarrolladores utilizan la documentación técnica provista con las bibliotecas con las que trabajan para declarar correctamente funciones y estructuras.

Ventajas y desventajas

Ventajas

  • Creación de aplicaciones a alta velocidad con interfaz gráfica para Microsoft Windows .
  • La sintaxis simple del lenguaje proporciona una barrera de entrada baja.
  • Capacidad de compilar tanto en código máquina como en código P (a elección del programador).
  • La seguridad de tipos brinda protección contra errores relacionados con el uso de punteros y el acceso a la memoria. Este aspecto hace que las aplicaciones de Visual Basic sean más estables, pero también es objeto de críticas.
  • Capacidad de usar la mayoría de las funciones de WinAPI [8] para expandir la funcionalidad de la aplicación. Este tema ha sido explorado más a fondo por Dan Appleman , quien escribió el libro "Guía del programador de Visual Basic para la API de Win32".

Desventajas

  • Soporte para sistemas operativos de las familias Windows y Mac OS X únicamente (Excepción - VB1 para DOS ).
  • La ausencia de un mecanismo completo para heredar la implementación de objetos [9] . La herencia que existe en el lenguaje le permite heredar solo las interfaces , pero no su implementación.
  • Casi todas las funciones de lenguaje incorporadas se implementan a través de la biblioteca de tiempo de ejecución , que a su vez realiza una gran cantidad de trabajo "extra" de verificación de tipos y/o conversión de tipos, lo que ralentiza la velocidad de las aplicaciones.

El lenguaje está fuertemente ligado a su entorno de desarrollo y al sistema operativo Microsoft Windows, siendo exclusivamente una herramienta para escribir aplicaciones de Windows. La vinculación con el entorno radica en el hecho de que hay una gran cantidad de herramientas diseñadas para ayudar y facilitar la programación: un depurador incorporado, visualización de variables y estructuras de datos sobre la marcha, una ventana de depuración, información sobre herramientas al escribir un programa ( IntelliSense ). Todas estas ventajas hacen que sea inútil e incluso imposible utilizar Visual Basic fuera del entorno de desarrollo, por ejemplo, en un editor de texto normal.

Crítica

  • A menudo se critican aspectos de Visual Basic como la capacidad de desactivar los medios de seguimiento de variables declaradas, la capacidad de convertir implícitamente variables , la presencia del tipo de datos "Variante". Según los críticos, esto hace posible escribir código extremadamente malo . Por otro lado, esto puede verse como un plus, ya que VB no impone “buen estilo”, sino que da más libertad al programador .
  • Falta de punteros , acceso a memoria de bajo nivel, inserciones ASM , incapacidad para exportar funciones en bibliotecas nativas, falta de herramientas de desarrollo de aplicaciones de consola estándar. Aunque el paradigma de Visual Basic permite que el programador promedio de VB prescinda de todo esto, estas cosas también son criticadas a menudo. Y aunque, usando características no documentadas y ciertos trucos, todo esto se puede implementar en VB (por ejemplo, usando funciones para obtener punteros y ) VarPtr; usar estos trucos a veces es más difícil que, por ejemplo, en C++ .StrPtrObjPtr

Sin embargo, vale la pena señalar que todas las deficiencias del lenguaje provienen de su principal ventaja: la simplicidad de desarrollar una interfaz gráfica. Por lo tanto, muchos programadores usan Visual Basic para desarrollar la interfaz de usuario, y la funcionalidad del programa se implementa como bibliotecas de vínculos dinámicos ( DLL ) escritas en otros lenguajes (por ejemplo, C++ ).

Implementaciones y dialectos

Visual Basic para Aplicaciones (VBA)

Este entorno de desarrollo prácticamente no difiere del clásico Visual Basic, que está diseñado para escribir macros y otros programas de aplicación para aplicaciones comerciales específicas. Recibió la mayor popularidad debido a su uso en el paquete de Microsoft Office . El uso generalizado de Visual Basic para aplicaciones, junto con una falta inicial de atención a los problemas de seguridad, ha dado lugar a virus de macro generalizados .

Peculiaridades:

  • No permite compilar aplicaciones en archivos ejecutables EXE/DLL
  • La ejecución de aplicaciones empresariales en un entorno moderno requiere una configuración de seguridad de macros correcta en la aplicación que aloja VBA
  • Faltan algunos objetos, como: Clipboard, App, Form, Timer, Data. En su lugar, se proporcionan otras clases que se implementan en el modelo de objetos específico de la aplicación.

Edición de secuencias de comandos de Visual Basic (VBScript)

Lenguaje de scripting , que es una versión algo truncada del Visual Basic habitual. Se utiliza principalmente para automatizar la administración de sistemas Microsoft Windows y para crear páginas ASP y secuencias de comandos para Internet Explorer .

Peculiaridades:

  • No hay operadores para trabajar con el sistema de archivos.
  • No hay forma de declarar una variable con un tipo de datos específico. Todas las variables son de tipoVariant
  • Es posible usar solo la vinculación tardía para trabajar con bibliotecas externas
  • Sin compilación de código en ejecutables
  • El código fuente se almacena en archivos de texto con la extensión .vbso.vbe

eMbedded Visual Basic (eVB)

Esta herramienta se utiliza para desarrollar software para los sistemas operativos Windows CE y Windows Mobile . Incluye IDE, depurador y emulador para pruebas de aplicaciones. eMbedded Visual Basic no se basa en el lenguaje de programación Visual Basic con funciones completas, sino en el lenguaje de secuencias de comandos Visual Basic Scripting Edition . Las aplicaciones se compilan en código P y los archivos ejecutables tienen la extensión VB, que están asociados con la aplicación host.

Peculiaridades:

  • Todas las variables son del tipo Variante por defecto; no se admite escritura fuerte
  • No se admite el desarrollo de controles ActiveX, pero puede utilizar
  • No se admiten una serie de controles integrados de Visual Basic, faltan algunas propiedades
  • Requiere bibliotecas eMbedded Visual Basic Runtime para ejecutar aplicaciones

Véase también

Notas

  1. Microsoft dice que dejará de desarrollar Visual Basic como lenguaje . Consultado el 18 de marzo de 2020. Archivado desde el original el 29 de marzo de 2020.
  2. Compatibilidad con Visual Basic planificada para .NET 5.0 . Consultado el 18 de marzo de 2020. Archivado desde el original el 5 de enero de 2022.
  3. https://msdn.microsoft.com/en-us/library/aa242751(v=vs.60).aspx Archivado el 22 de diciembre de 2015 en Wayback Machine MSDN, Visual Basic 6.0, Language Reference y operator
  4. V. Serguéiev. Visual Basic 6.0. La guía más completa para el trabajo profesional en el entorno Visual Basic. S 493.
  5. https://support.microsoft.com/en-us/kb/229415 Archivado el 6 de marzo de 2016 en Wayback Machine . Visual Basic admite compilación de código nativo y código P.
  6. El asistente de empaquetado e implementación . Conceptos de Visual Basic. Visual Studio 6.0  (inglés) . MSDN . microsoft _ Consultado el 29 de abril de 2017. Archivado desde el original el 22 de noviembre de 2016.
  7. https://support.microsoft.com/en-us/kb/161137 Uso de diseño y compatibilidad binaria
  8. Las versiones de 16 bits pueden acceder al subsistema Win16, mientras que las versiones de 32 bits pueden acceder a Win32.
  9. La falta de herencia de implementación es una característica de la tecnología COM , no de VB en sí, que solo refleja esta característica.

Lectura sugerida

  • Maureen Williams Zimmermann. Biblioteca de referencia de Microsoft Visual Basic 6.0 . - Redmond, WA, EE. UU.: Microsoft Press, 1998. - 3344 p. — ISBN 1-57231-864-3 .
  • Personal del Curso Académico Oficial de Microsoft. Microsoft Visual Basic 6.0: Guía del programador . - Redmond, WA, EE. UU.: Microsoft Press, 1998. - 976 p. — ISBN 1-57231-863-5 .
  • John Clark Craig, Jeff Webb. Microsoft Visual Basic 6.0. Taller de desarrolladores. - "Edición rusa", 2001. - 720 p. — ISBN 1-57231-883-X .
  • Dan Appleman. API Win32 y Visual Basic. Profesional = Guía del programador de Visual Basic de Dan Appleman para la API de Win32. - San Petersburgo. : "Pedro" , 2001. - 1120 p. — ISBN 5-272-00198-2 .
  • James Cooper. Patrones de diseño de Visual Basic: VB 6.0 y VB.NET . - Addison Wesley, 2002. - 484 págs. — ISBN 0-201-70265-7 .
  • Sergeev V. Visual Basic 6.0. Guía para profesionales. - San Petersburgo. : "BHV-Petersburg", 2004. - 974 p. - ISBN 5-8206-0019-3 .
  • Brian Siler, Jeff Spotts. Usando Visual Basic 6. Edición Clásica = Edición Especial Usando Visual Basic 6. - M. : "Williams", 2007. - 832 p. — ISBN 0-7897-1542-2 .