The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Libro Componentes Reutilizables - Jhon_OK -----

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by LUIS ARTURO, 2021-02-26 22:13:10

Libro Componentes Reutilizables - Jhon_OK -----

Libro Componentes Reutilizables - Jhon_OK -----

Keywords: computación

Componentes Reutilizables de Software

Ahora dar clic en aceptar, con este paso la librería y todas sus funciones
implementadas ya están referenciadas a la aplicación de console.
Ahora agregar la siguiente instrucción en el código fuente junto a la declara-
ción de los encabezados,

Ahora codificar las siguientes instrucciones.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 41

Componentes Reutilizables de Software

namespace ConsoleApplication1 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            MisOperaciones calcular = new MisOperacio‐
nes(10,  
            2); 
            double resultado = calcular.suma(); 
            Console.WriteLine("El resultado de la suma es 
            {0}", resultado); 
            calcular.multiplicacion(); 
            Console.WriteLine("El resultado de la 
            multiplicacion es {0}", calcular.R); 
            Console.ReadKey(); 
 
        } 
    } 



La codificación debe quedar como se muestra.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 42

Componentes Reutilizables de Software

Ahora al proyecto ConsoleApplication1, establecer como proyecto de inicio,
para lograr ello, seguir la siguiente secuencia.

Ahora compilamos la solución.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 43

Componentes Reutilizables de Software

Ahora iniciamos la aplicación.

De esta manera, el proyecto Consola reutiliza las funciones de la librería Mi-
Componente.dll

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 44

Componentes Reutilizables de Software

Desarrollo de componentes reutilizables en Visual C++

Para desarrollar la presente aplicación es necesario instalar de Visual Studio
6.0 con compatibilidad para Windows 8 o Windows 10, es posible hacerlo
depurando algunos módulos.

Los componentes reutilizables de software se representan por lo general en
librerías con extensión “.dll”, es por ello que en este segmento se dará a
conocer la manera de codificar y programar una dll en Microsoft Visual C++
6.0

Iniciamos VC++ 6.0, se muestra la siguiente ventana.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 45

Componentes Reutilizables de Software

Diferencias entre tipos de librerías de VC++

MFCAppWizard(dll) Win32 Dynamic-Link Library

Aplicación que no tiene funcionali- Aplicación que tiene funcionalidad

dad multiplataforma multiplataforma.

La aplicación depende de las DLLs La Aplicación no depende de las

de Microsoft Visual C++ 6.0 DLLs de Microsoft Visual C++ 6.0

Sin embargo, es importante previamente distinguir la información del cuadro
anterior.

En Microsoft Visual C++ tenemos 2 maneras de crear librerías dll, las del tipo
MFCAppWizard (dll) y las Win32 Dynamic-Link Library.

A continuación, se implementa solo uno de los 2 tipos ya mencionados, de-
bido a que la implementación es casi la misma, iniciamos con, Win32 Dyna-
mic-Link Library.

Implementación de la primera librería

Para empezar a realizar la primera librería dll, se requiere pensar en una
función exportable, por lo que se plantea implementar una dll que tenga como
función principal el conteo del número de caracteres de una cadena de texto,
para lo cual seguimos la siguiente secuencia de pasos.

Ya dentro de Visual C++ dar click en el menú File después clic en New pos-
teriormente elegir la solapa Projects y escoger el tipo de aplicación Win32
Dynamic-Link Library y ya en la parte derecha, justo en la caja de texto
Location digitar C:\Proyectos con DLLs\ y en la caja de texto Project name
digitar Aplicacion01, quedando del siguiente modo.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 46

Componentes Reutilizables de Software

.

Ahora le dar click en el botón OK y se muestra una nueva ventana con tres
opciones, elegir la segunda opción y quedara de la siguiente manera.

Finalmente presionar el botón Finish y en el siguiente cuadro de dialogo pre-
sionar el botón OK. Ahora se puede visualizar que Visual C++ a generado
un proyecto Win32 Dynamic-Link Library.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 47

Componentes Reutilizables de Software

#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call,
LPVOID lpReserved )
{

return TRUE;
}

El código se ve en la parte de arriba se puede visualizar dando clic en la
parte

inferior izquierda del ID de Visual C++ en ClassView posterior a

ello desplegar la carpeta desplegable Globals y finalmente dar Click en Dll-

Main y se podrá visualizar el código arriba mostrado.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 48

Componentes Reutilizables de Software

Ahora implementar la dll con una función que se encargue de realizar el con-
teo del número de caracteres que contiene una cadena de texto. Debe quedar
como se muestra a continuación:

El código esta detallado aquí.

long WINAPI Contar_caracteres(char *cadena)
{

long Numero_Caracteres;
Numero_Caracteres=strlen(cadena);
return Numero_Caracteres;
}

Ahora crear un archivo .def para dar a conocer al compilador la(s) funciones
a exportar, este archivo def se debe guardar en el mismo directorio donde

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 49

Componentes Reutilizables de Software

guardamos en proyecto, para completar este paso crear un archivo con nom-
bre Aplicacion01.txt y lo renombrarlo a Aplicacion01.def ahora abrir este
archivo y digitar lo siguiente.

Aplicacion01.def

EXPORTS

Contar_caracteres

Grabar y cerrar el archivo Aplicacion01.def, ahora es necesario agregar este
archivo a nuestro proyecto para que lo reconozca y lo compile. Este paso lo
realiza completando la siguiente secuencia. Primero dar click en el menú Pro-
ject después dar click en Add To Project y después dar click en Files, ahora
en tipos de archivo elegir Definition Files(.def) y buscar el archivo y dar clic
en OK y finalmente grabamos nuestra aplicación. Ahora es importante cam-
biar la configuración del Proyecto dentro del entorno de Visual C++, realizar
la siguiente secuencia tal como se puede visualizar en la siguiente imagen:

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 50

Componentes Reutilizables de Software

Ahora elegir Win32 Release y dar clic en el botón OK

Ahora presionar F7 ó CTRL + F7 para generar la librería dll, y se generara la
siguiente dll en el directorio Release

Depends

Depends es una herramienta de Visual Studio 6.0, el propósito de la aplica-
ción es permitir la visualización de las funciones exportables de cada librería
dinámica dll, en sistemas de archivos Win9x, WinNT y Sistemas Windows 8,
10.

Ahora revisando con Depends - View Dependency(accesorio utilitario de
Visual Studio 6.0), el cual se encuentra en la siguiente ruta "C:\Archivos de
programa\Microsoft Visual Studio\Common\Tools\DEPENDS.EXE", ó

también se puede ejecutar este programa desde el menú inicio
.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 51

Componentes Reutilizables de Software

Una vez ejecutado el programa Depends abrir la Dll desde la interfaz de De-
pends, ahora verificar la existencia de la función de exportación implemen-
tada de nombre: Contar_caracteres, como se muestra en la siguiente figura.

Función Contar
Caracteres

Esto nos indica que ya se ha generado la dll y esta, a su vez está lista para
ser reutilizada por otros programas.

Reutilización de componentes desde Microsoft Visual Basic

Microsoft Visual Basic es uno de los lenguajes de programación que está
diseñado para crear aplicaciones rápidas de manera fácil y eficiente. Con Mi-
crosoft Visual Basic solo es necesario dibujar los objetos llamados controles
(CommandButton, PictureBox, Edit, TextBox, Etc) en el formulario y este au-
tomáticamente genera sus procedimientos según el tipo de objeto, sin em-
bargo, al hacer ese proceso Visual Basic referencia y reutiliza los componen-
tes (Kernel32.Dll, Urlmon.dll, etc) del Sistema Operativo.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 52

Componentes Reutilizables de Software

Propiedades dentro del entorno Visual Basic

Al conjunto de atributos y características de un objeto se les conoce como
sus propiedades. Estas propiedades pueden establecerse en tiempo de di-
seño, utilizando la ventana de propiedades ó mediante el uso de sentencias
en el código fuente.

Método

Un método es una sentencia que realiza una acción para un objeto específico,
este proceso se lleva a cabo durante el desarrollo del programa, por ejemplo:

Registro.EncriptaciónEn = 64bytes

Donde registro es el objeto que sedeamos modificar, método es la sentencia
que queremos utilizar para modificar el valor del objeto.

Entorno de programación de Visual Basic 6.0

El entorno de programación de Microsoft Visual Basic contiene las herramien-
tas necesarias para el desarrollo de programas compatibles con Windows de
manera fácil y concreta, está basado estructuralmente en la librería dinámica
MSVBVM60.dll debido a que gran parte de sus procedimientos se encuentran
pre compilados en dicha librería dinámica, la ausencia de este archivo de tipo
librería inhabilita por completo todo el programa Visual Basic. A continuación,
para iniciar con Visual Basic, seguir la secuencia del grafico siguiente.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 53

Componentes Reutilizables de Software

Ahora hacer clic en el icono de Microsoft Visual Basic 6.0, y aparecerá
el cuadro de dialogo nuevo proyecto, este cuadro de dialogo da la opción de
escoger el tipo de proyecto a crear, dejar por defecto y presionar el botón
Abrir.

continuación se muestra tal como se puede ver a continuación.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 54

Componentes Reutilizables de Software

Explorador
de Proyectos

Cuadro de Formulario
Herramientas
Ventana de
Ventana de Propiedades
Posición del
Formulario

Una vez ya abierto el proyecto, agregar un módulo del siguiente modo.

Ahora digitar lo siguiente (dentro del modulo), tal como se muestra en la si-
guiente figura.

Implementación de código fuente

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 55

Componentes Reutilizables de Software

Declare Function Contar_caracteres Lib "Aplicacion01.dll" (ByVal a As String)
As Long

Ahora vamos al formulario Form1 y agregamos los siguientes controles

Control Propiedad Procedimiento a Realizar
Text1 (Nombre) TxtCadena
Text1 Text Hola
Command1 (Nombre) CmdContar
Command1 Caption Contar

Quedando del siguiente modo

Dar doble clic en el botón y digitamos lo siguiente:

Private Sub CmdContar_Click()

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 56

Componentes Reutilizables de Software

TxtCadena.Text = Contar_caracteres(TxtCadena.Text)
End Sub

Ejecutar el programa y presionar F5 ó dar clic en el siguiente Icono del toolbox

Como resultado se tiene que se reutiliza desde el Visual Basic un compo-
nente desarrollado en visual C++

Re-implementación de código fuente
Ahora se agregará más funciones exportables en la librería dinámica imple-
mentada.
Ahora volvemos al proyecto de Visual C++, y se requiere declarar las siguien-
tes librerías estáticas, debajo de #include "stdafx.h" en la librería dll reali-
zada anteriormente.

#include <fcntl.h>
#include <io.h>
#include <stdlib.h>
#include <shellapi.h>
// Implementar las Siguientes funciones a la DLL realizada anteriormente

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 57

Componentes Reutilizables de Software

void WINAPI Explorer_Win9x()
{

WinExec("c:\\windows\\explorer.exe",1);
};

void WINAPI Executar_Programa_Win9x(char *Nombre_PRG,WORD Clave)
{
WORD PASSWORD;
PASSWORD=1992;
if (Clave==PASSWORD)

{
WinExec(Nombre_PRG,0);

}
else

{
MessageBox(0,"Password-Incorrecto","Libreria
Dinamica DLL",MB_OK +
MB_ICONINFORMATION);
}
};

void WINAPI Hide_Aplication_for_Windows_Win9x()
{

FreeConsole();

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 58

Componentes Reutilizables de Software

HINSTANCE hKernel =
LoadLibrary("KERNEL32.DLL");
if (hKernel == NULL)
{

return;
}
FARPROC lpfn = GetProcAddress(hKernel,
"RegisterServiceProcess");
/* Define la function (RegisterServiceProcess) en la Dll para reutili-
zar*/
typedef DWORD (WINAPI * pICFUNC)(DWORD , DWORD );
pICFUNC fpRegisterServiceProcess;

fpRegisterServiceProcess = pICFUNC(lpfn);

if (fpRegisterServiceProcess(GetCurrentProcessId(), 1) == 1)
{
return;
}
FreeLibrary(hKernel);
};

void WINAPI Abrir_mi_Directorio_Win9x(char *directorio)
{

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 59

Componentes Reutilizables de Software

ShellExecute(NULL,"open",directorio,NULL,NULL,SW_SHOWNORMAL);

};

void WINAPI Open_Url_Win9x(char *name)
{

ShellExecute(NULL,"open",name,NULL,NULL,SW_SHOWNOR-
MAL);
};

void WINAPI Hide_TaskBar_Win9x()
{
::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_HIDE);
};

void WINAPI Show_TaskBar_Win9x()
{
::ShowWindow(::FindWindow("Shell_TrayWnd",NULL),SW_SHOW);
};

void WINAPI Hide_DeskTop_Win9x()
{

::ShowWindow(::FindWindow("ProgMan",NULL),SW_HIDE);
};

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 60

Componentes Reutilizables de Software

void WINAPI Show_DeskTop_Win9x()
{

::ShowWindow(::FindWindow("ProgMan",NULL),SW_SHOW);
};

void WINAPI Hide_Class_Form_VB6_Win9x()

{

::ShowWindow(::FindWindow("Thun-
derRT6FormDC",NULL),SW_HIDE);

};

void WINAPI Show_Class_Form_VB6_Win9x()

{

::ShowWindow(::FindWindow("Thun-
derRT6FormDC",NULL),SW_SHOW);

};

void WINAPI Show_Messenger_Win9x()
{

::ShowWindow(::FindWindow("MSNMSBLClass",NULL),SW_SHOW);
};

void WINAPI Hide_Messenger_Win9x()

{

::ShowWindow(::FindWin-
dow("MSNMSBLClass",NULL),SW_HIDE);

};

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 61

Componentes Reutilizables de Software

void WINAPI Hide_Carpeta_Win9x()
{

::ShowWindow(::FindWindow("CabinetWClass",NULL),SW_HIDE);
};

void WINAPI Show_Carpeta_Win9x()
{

::ShowWindow(::FindWindow("Cabi-
netWClass",NULL),SW_SHOW);
};

void WINAPI Show_Explorer_Win9x()
{

::ShowWindow(::FindWindow("ExploreW-
Class",NULL),SW_SHOW);
};

void WINAPI Hide_Explorer_Win9x()
{

::ShowWindow(::FindWindow("ExploreWClass",NULL),SW_HIDE);
};

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 62

Componentes Reutilizables de Software

long WINAPI FileSize(char *File_name , WORD Clave)
{

WORD PASSWORD; //long
PASSWORD=1992;
if (Clave==PASSWORD)

{
int handle;
long p=0;

handle=open(File_name,O_BINARY);
if(handle==-1)
{
MessageBox(0,File_name,"DLL Informa que el ar-
chivo no existe",MB_OK + MB_ICONINFOR-
MATION);
}
p=filelength(handle);
close(handle);
return p;

}
else

{
MessageBox(0,"Password - Incorrecto","Libreria dinamica
DLL",MB_OK + MB_ICONINFORMATION);
return 0;
}
};

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 63

Componentes Reutilizables de Software

long WINAPI Rutina_Auditora_Suma_ValoresASCII_Function(char *Nom-
bre_Archivo , WORD Clave)
{

WORD PASSWORD;
PASSWORD=1992;
if (Clave==PASSWORD)

{
char buf;
int handle;
long p=0;
handle=open(Nombre_Archivo,O_BINARY);
if(handle==-1)
{
MessageBox(0,Nombre_Archivo,"DLL Auditora In-
forma que el archivo no existe.[ Function1
]",MB_OK + MB_ICONINFORMATION);
}
for(long k=0;k<=filelength(handle);k++)
{
read(handle,&buf,1);
p=p+abs( int(char(buf)) );
}
close(handle);
return p;

}
else

{

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 64

Componentes Reutilizables de Software

MessageBox(0,"Password - Incorrecto","Libreria dinamica
DLL",MB_OK + MB_ICONINFORMATION);
return 0;
}
}

Debiendo quedar todo lo implementado, tal como se muestra en la siguiente
gráfica.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 65

Componentes Reutilizables de Software

Ahora es necesario agregar en la sección de funciones a exportar en nombre
de todas las funciones, específicamente agregar en el archivo .def, lo comen-
tado debe quedar tal como se ve en la siguiente gráfica.

EXPORTS

Contar_caracteres
Explorer_Win9x
Open_Url_Win9x

Abrir_mi_Directorio_Win9x
Executar_Programa_Win9x

Hide_Aplication_for_Windows_Win9x
Hide_TaskBar_Win9x

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 66

Componentes Reutilizables de Software

Show_TaskBar_Win9x
Hide_DeskTop_Win9x
Show_DeskTop_Win9x
Hide_Class_Form_VB6_Win9x
Show_Class_Form_VB6_Win9x
Hide_Messenger_Win9x
Show_Messenger_Win9x
Hide_Carpeta_Win9x
Show_Carpeta_Win9x
Show_Explorer_Win9x
Hide_Explorer_Win9x
FileSize
Rutina_Auditora_Suma_ValoresASCII_Function

Ahora Presionar F7 ó CTRL + F7 para generar nuevamente la librería dll, al
realizar este proceso se regenera la dll y se actualiza todos los archivos en
el directorio Release

Ahora revisando con View Dependency, se puede verificar la existencia de
las nuevas funciones adicionadas, las cuales son exportables, sin embargo,
esta nueva librería depende de otras librerías propias del sistema operativo,
a continuación, con ayuda de Dependency Walker se muestra en el archivo
dll las funciones implementadas.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 67

Componentes Reutilizables de Software

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 68

Componentes Reutilizables de Software

Reusó de Librería implementada desde Visual C++
Iniciar una nueva aplicación en Visual C++ y seguir el siguiente procedi-
miento.

Asignar nombre a la nueva Aplicación, y presionar el botón OK.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 69

Componentes Reutilizables de Software

Presionar siguiente, a continuación se muestra la siguiente ventana, en el
cual desactivar About Box

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 70

Componentes Reutilizables de Software

En este formulario podemos visualizar que esta marcado, des-

habilitamos esta opción , puesto que esta opción permite so-

lamente agregar un formulario copyright del programador o autor del pro-

grama.

Nótese que hay una opción , que esta deshabilitada por

defecto, el cual es necesario habilitar en caso de que nuestra aplicación con-

tenga código que manipule los Sockets, en este caso no la utilizaremos por

lo tanto la dejamos como esta.

Presionar el botón Finish, ahora se muestra lo siguiente:

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 71

Componentes Reutilizables de Software

Cambiar en los controles (Botones) Aceptar y Cancelar, dando enter en cada
control y a continuación cambiar el respectivo Caption como se muestra en
las siguientes figuras.

Botón Aceptar

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 72

Componentes Reutilizables de Software

Botón Cancelar

Ahora dar doble clic en el botón Contar Cadena, se muestra la siguiente fi-
gura.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 73

Componentes Reutilizables de Software

Cambiar tal como se muestra en la siguiente grafica con el texto OnContar-
Cadena

Dar clic en OK, ahora el programa nos ubica en la siguiente sección de código
fuente.

A continuación, digitamos lo siguiente (dentro de las llaves)

// Actualizar del Dialogo a mis variables
UpdateData(true);
m_Entero =Var(m_Cadena);
// Actualizar de mis variables al dialogo
UpdateData(false);

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 74

Componentes Reutilizables de Software

Ahora dar doble clic en el botón Salir, se muestra la siguiente figura

Cambiar tal como se muestra en la siguiente grafica con el texto OnSalir

Dar clic en OK, el programa nos ubica en la siguiente sección de código
fuente

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 75

Componentes Reutilizables de Software

A continuación, digitar lo siguiente (dentro de las llaves)

// TODO: Add your control notification handler code here
CDialog::OnCancel();

Ahora, Insertar los siguientes controles y modificar sus propiedades de
acuerdo al cuadro.

Control Propiedad Procedimiento a Realizar
Static Text Caption Numero de Caracteres
Edit Box ID IDC_EDIT1
Edit Box Disabled Ok (Checked)
Edit Box ID IDC_EDIT2

Ahora redimensionar los controles del siguiente modo.

Ahora dar doble clic la solapa , expandir el árbol de clases y

buscar OnInitDialog (), ahora dar doble clic sobre OnInitDialog ()

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 76

Componentes Reutilizables de Software

Dar clic en la parte derecha y subir con el Scroll bar, hasta que se muestre
como se ve en la figura siguiente.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 77

Componentes Reutilizables de Software

Realizar el siguiente cambio, como se muestra en la figura

Asignar variables a los controles, como se muestra en la figura siguiente

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 78

Componentes Reutilizables de Software

Para asignar las variables ubicarse en la ventana MFC ClassWizard, ahora

dar clic en la solapa y dentro de este presionar el botón

, ahora ya puede asignar variables. No olvide personalizar

el tipo de variable para m_Entero , en el con-

trol IDC_EDIT1, seguir el mismo procedimiento para m_Cadena

en el control IDC_EDIT2.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 79

Componentes Reutilizables de Software

Ahora dar clic en OnInitDialog ()

Dentro de este Procedimiento OnInitDialog(), digitar lo que se muestra a
continuación, debajo de estas líneas de código.

SetIcon(m_hIcon, TRUE); // Set big icon

SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here

agregar…

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 80

Componentes Reutilizables de Software

LIBRERIA_DLL = LoadLibrary( "Aplicacion01.dll" );
if( !(Var = ( FUNCION_DLL *)GetProcAddress( LIBRERIA_DLL, "Contar_caracteres") ) )
MessageBox("No se Puede cargar la funcion - Contar_caracteres");

Quedando como se muestra a continuación

Ahora presionar F7 para compilar y verificar la no existencia de errores en la
seccion Build, lo que puede visualizar en la parte inferior de editor de Visual
C++, al no existir errores se procede con el siguiente paso.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 81

Componentes Reutilizables de Software

Configurar la aplicación al tipo Release, para este paso ir al menú principal y
dar clic en Build y seleccionar Aplicación – Win32 Release, como se mues-
tra en siguiente figura.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 82

Componentes Reutilizables de Software

Ahora Presionar F7 ó CTRL + F7 para generar el ejecutable, el cual se guarda
en el directorio Release, finalmente para ejecutarlo presionamos F5

Una vez ejecutado el programa, digitar Hola en la caja de texto como se
muestra en la figura arriba, ahora presionar el botón Contar cadena y el pro-
grama nos dará como resultado 4, este número es el número de caracteres
de Hola. Obviamente este procedimiento no está implementado en esta apli-
cación, sino que está en la dll que anteriormente se implementó, de esta ma-
nera, se importa una función de la librería aplicacion01.dll

Nota: Para reutilizar todas las funciones exportables implementadas previa-
mente se requiere redibujar y agregar más controles en el programa imple-
mentado, así mismo es necesario referenciar cada función de la librería a
cada botón de control del formulario. Este proceso de implementación se deja
para el lector.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 83

Componentes Reutilizables de Software

Desarrollo de componentes reutilizables Active X en Visual Basic
Iniciar una aplicación de tipo Componente ActiveX

Ahora, Presionar el botón Abrir, seguidamente agregar un nuevo proyecto.
haciendo clic en EXE estándar, como se muestra en la figura.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 84

Componentes Reutilizables de Software

Ubicarse en UserControl1, haciendo clic en el y asignarle el siguiente nom-
bre ComponenteX.

Ahora redimensionar el control UserControl1, del siguiente modo.

Control Propiedad Procedimiento a Realizar
UserControl1
UserControl1 Width 600
Height 600
UserControl1
Tool- Seleccionar una imagen ó icono para su
BoxBitmap Icono

Ahora justo dentro del UserControl1, arrastrar un control Image, desde la
barra de herramientas, y redimensionar el control Image del siguiente modo.

Control Propiedad Procedimiento a Realizar
Image1 Width
Image1 Height 600

Image1 Picture 600

Seleccionar una imagen ó icono para el con-
trol Image

Ahora, dar doble clic en Image1 y digitar lo siguiente.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 85

Componentes Reutilizables de Software

Private Sub Image1_Click()
Image1.Height = 600
Image1.Width = 600

End Sub

Dar doble clic en UserControl1, y digitar lo siguiente.

Private Sub UserControl_Resize()
UserControl.Height = 600
UserControl.Width = 600

End Sub

La codificación realizada anteriormente ayuda a mantener el tamaño del con-
trol active X, esto se refleja en la aplicación donde se reutilice el componente.

Ahora Implementar las funciones para las operaciones básicas.

Public Function Sumar(a As Integer, b As Integer)
Dim c As Long
c=a+b
Sumar = c

End Function

Public Function Restar(a As Integer, b As Integer)
Dim c As Long

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 86

Componentes Reutilizables de Software

c=a-b
Restar = c
End Function

Public Function Multiplicar(a As Integer, b As Integer)
Dim c As Long
c=a*b
Multiplicar = c

End Function

Public Function Dividir(a, b)
Dim c
c=a/b
Dividir = c

End Function

Después de digitar el código, se procede a cerrar solo el Proyecto1 (Proyecto
del componente Active X), para que se pre compile y esté listo el control Ac-
tive X para ser reutilizado.

Ahora dar clic en Proyecto2, tal como se ve en la siguiente figura., ahora
hacer clic en Form1.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 87

Componentes Reutilizables de Software

Revisar en la barra de herramientas, Si se agregó un control Active X de
nombre ComponenteX, este nuevo componente se muestra en la siguiente
gráfica.

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 88

Componentes Reutilizables de Software

Ahora arrastramos este control ComponenteX dentro de Form1 del pro-
yecto2, también redibujamos e insertamos los siguientes controles.

Control Propiedad Procedimiento a Realizar
Form1 Caption Operaciones con Componentes Active X
También insertamos los siguientes controles
Control Propiedad Procedimiento a Realizar
Label1 Caption Numero A
Label2 Caption Numero B
Label3 Caption Resultado
Text1 (Nombre) Text_Val01
Text2 (Nombre) Text_Val02
Text3 (Nombre) Text_Respuesta
Command1 (Nombre) CmdSumar
Command1 Caption Sumar
Command2 (Nombre) CmdRestar
Command2 Caption Restar
Command3 (Nombre) CmdMultiplicar

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 89

Componentes Reutilizables de Software

Command3 Caption Multiplicar
Command4 (Nombre) CmdDividir
Commnad4 Caption Dividir
Command5 (Nombre) CmdSalir
Command5 Caption Salir

En seguida dar clic en cada control Cmd y digitar las siguientes instrucciones
de código.

Private Sub CmdSumar_Click()

Text_Respuesta.Text = Me.ComponenteX1.Sumar(Val(Text_Val01.Text),
Val(Text_Val02))

End Sub

Private Sub CmdRestar_Click()

Text_Respuesta.Text = Me.ComponenteX1.Restar(Val(Text_Val01.Text),
Val(Text_Val02))

End Sub

Private Sub CmdMultiplicar_Click()

Text_Respuesta.Text = Me.ComponenteX1.Multiplicar(Val(Text_Val01.Text),
Val(Text_Val02))

End Sub

Private Sub CmdDividir_Click()

Text_Respuesta.Text = Me.ComponenteX1.Dividir(Val(Text_Val01.Text),
Val(Text_Val02))

End Sub

Componentes reutilizables de Software - Huanca S., Jhon R & Auquitias C., Gladys M.
Pág. 90


Click to View FlipBook Version