Estudiante
1 Objetivos
Al acabar esta práctica serás capaz de:
1 Construir aplicaciones en Visual Basic que utilicen objetos que han sido creados en Visual C++
2 Depurar aplicaciones que combinan Visual Basic y Visual C++
2 Motivación
En esta práctica vamos a aprender a construir aplicaciones que usen Visual Basic y también Visual C++. Esto es muy apropiado cuandoqueremos que la aplicación tenga una interfaz de ventanas agradable para el usuario, parte que haremos en Visual Basic, pero también debe tener una parte de cálculo y manejo de estructuras de datos, que haremos en Visual C++. La idea básica es que la parte de cálculo la codificaremos en forma de objetos de Visual C++, con sus estructuras de datos y métodos de uso, y a partir de los objetosconstruiremos una DLL (Dynamic-Link Library) plana. Después, en los procedimientos y funciones de Visual Basic realizaremos llamadas a los métodos de la DLL.
3 Una aplicación muy simple
La primera aplicación que vamos a construir leerá una matriz de 5x5 enteros de un fichero de texto llamado “datos.txt”, (operación que realizaremos en Visual C++) y mostrará esa matriz en pantalla (mediante unformulario de Visual Basic que usará un objeto de tipo MSFlexGrid). Después, cada vez que hagamos clic en un botón (objeto CommandButton) substituirá la matriz por su traspuesta (operación que también realizaremos en Visual C++).
E primer lugar, crea una carpeta llamada prueba1. Dentro de esta carpeta crea una carpeta que se llamará VC, en la que ubicaremos todos los ficheros del proyecto Visual C++, yuna carpeta llamada VB, en la que ubicaremos todos los ficheros del proyecto Visual Basic.
El siguiente paso es construir, con el Visual C++, el objeto matriz, con los métodos para cargar la matriz del fichero y para trasponerla. Crea, en la carpeta VC, un proyecto Visual C++ de tipo Win32 Dynamic-Link Library, que llamaremos matriz. Al proyecto tenemos que añadirle cuatro ficheros, que sedescriben a continuación.
Los ficheros matriz.h y matriz.cpp contienen las cabeceras y los métodos del objeto matriz. El código de estos ficheros es el siguiente:
Como vemos, hay un método para cargar la matriz del fichero, otro para trasponerla, y otro para consultar cualquiera de sus elementos.
El tercer fichero del proyecto Visual C++ se llamará DLLmatriz.cpp, ycontiene la declaración de un objeto de tipo matriz y la definición de los procedimientos y funciones que realmente serán llamados desde Visual Basic. Cada uno de esos procedimientos y funciones ejecutará el método correspondiente del objeto matriz. El contenido del fichero es:
Como ves, los procedimientos y funciones prácticamente lo único que hacen es trasladar la llamada almétodo correspondiente del objeto matriz. Por esta razón es normal que tengan nombres parecidos. Debes adoptar la costumbre de poner DLL al inicio del nombre de los procedimientos y funciones, para que quede claro que éstos son los procedimientos y funciones de la DLL y no los métodos del objeto.
El nombre de los procedimientos y funciones de la DLL debe ser precedidos por las palabras claves FARPASCAL. Es importante incluir Windows.h porque de lo contrario no reconocerá estas dos palabras clave.
El cuarto fichero del proyecto Visual C++ se llamará matriz.def, y tiene el siguiente contenido:
En este fichero se define el nombre del fichero que contendrá la DLL, en este caso matriz.dll. Este nombre debe coincidir con el nombre del proyecto. Además se enumeran sus procedimientos yfunciones.
Una vez preparados estos ficheros se puede construir la DLL (pestaña Build). El resultado es un fichero llamado matriz.dll que debes encontrar en la carpeta del proyecto (en la subcarpeta Debug). Si no lo ves allí, y no ha habido ningún error en la compilación y montaje, entonces es que hay que activar la opción adecuada en la pestaña ver->opciones de carpeta del explorador de...
Regístrate para leer el documento completo.