Red de conocimiento informático - Conocimiento informático - Cómo romper con el entorno de trabajo de MATLAB e implementar programación mixta de lenguajes MATLAB y Visual Basic

Cómo romper con el entorno de trabajo de MATLAB e implementar programación mixta de lenguajes MATLAB y Visual Basic

Fuera del entorno de trabajo de MATLAB, realice una programación híbrida de los lenguajes MATLAB y Visual Basic.

La siguiente discusión se lleva a cabo en el entorno de software MATLAB7.0 y vc 6.0:

1. Compile el archivo .m de MATLAB en un archivo .exe para realizar una programación mixta de los lenguajes MATLAB y Visual Basic

1 Establezca la línea 81 set_param en \MATLAB7\toolbox\compiler\deploy\matlabrc. .m (0, 'PaperType', defaultpaper)

Y línea 82 set_param (0, 'PaperUnits', defaultunits)

Comente o simplemente elimine, de lo contrario, MATLAB no instalarse Al ejecutar un programa compuesto por lenguajes MATLAB y VisualBasic en una computadora, aparecerá el error "Comando/función indefinido 'set_param'".

2. Ejecute el siguiente comando en la ventana de comandos de Matlab7: rehash toolboxcache

Para completar la carga y actualización de la caja de herramientas.

3. Ejecute el siguiente comando en la ventana de comandos de Matlab7:

Mcc –m ***.m

Copia el archivo MATLAB .m (M). El archivo debe comenzar con Función (es decir, debe ser un archivo de función) y compilarlo en un archivo .exe. Copie el archivo .ctf compilado y el archivo .exe al directorio del proyecto VB. Son archivos necesarios para ejecutar. el entorno matlab;

4. En el proyecto VB, utilice las siguientes instrucciones para llamar al archivo .exe compilado a partir del archivo MATLAB .m:

lTask ​​​​= Shell(" rt2.exe", vbHide)

hProc= OpenProcess(PROCESS_QUERY_INFORMATION, False, lTask)

IflTask ​​= 0 Then MsgBox "Error en la ejecución del programa"

Do

GetExitCodeProcess hProc, lExit

DoEvents

LoopWhile lExit = STILL_ACTIVE

5. Empaquetar el proyecto VB. El archivo ctf y el archivo .exe generados al compilar en MATLAB deben agregarse al paquete del proyecto VB, son archivos necesarios para ejecutarse fuera del entorno matlab;

6. la computadora cliente y agregue matlab7\toolbox\compiler\deploy\. El programa MCRInstaller.exe en win32 también se copia a la computadora cliente.

7. En la computadora cliente, ejecute el programa: MCRInstaller.exe e instale el tiempo de ejecución del compilador matlab en la computadora cliente. Nota: El directorio de instalación debe estar ubicado en la carpeta donde se encuentra;

8. Ejecute el programa de instalación en el paquete de instalación del proyecto VB para instalar el programa del proyecto VB; En este punto, en la computadora cliente, puede ejecutar el programa compilado mezclando el lenguaje MATLAB y Visual Basic normalmente.

Notas:

1. No puede haber otros archivos .dll en el directorio donde se encuentra el proyecto VB; de lo contrario, el programa mixto de MATLAB y Visual Basic se ejecutará en el cliente. , aparecerá el siguiente mensaje de error:

"Advertencia: No se pudo iniciar la máquina virtual Java."

"Advertencia: Deshabilitando el soporte de Java".

"Función o variable no definida 'matlabrc'".

2. Compile el archivo MATLAB .m en un archivo .dll para realizar una programación mixta de los lenguajes MATLAB y Visual Basic

1. MATLAB7\ Línea 81 set_param(0,'PaperType',defaultpaper)

y línea 82 set_param(0,'PaperUnits',defaultunits)

en toolbox\compiler\deploy\matlabrc. m Coméntelo o simplemente elimínelo; de lo contrario, al ejecutar un programa compuesto por lenguaje MATLAB y Visual Basic en el cliente, aparecerá el error "Comando/función no definidos 'set_param'".

2. Ejecute el siguiente comando en la ventana de comandos de Matlab7: rehash toolboxcache

Completa la carga y actualización de la caja de herramientas.

3. Instale el software vc 6.0 para prepararse para la instalación y configuración del compilador Matlab.

4. Ejecute los siguientes comandos en la ventana de comandos de Matlab7:

p> mbuild –setup

Instalar y configurar el compilador Matlab;

5. Crear componentes COM en Matlab

Utilizar el generador COM de Matlab para crear componentes COM. Incluye 4 pasos, a saber, crear proyectos, administrar archivos m, generar componentes, empaquetar y distribuir componentes.

Los pasos para crear componentes COM en Matlab son los siguientes:

(1) Crear un proyecto. Escriba el comando comtool en la ventana de comandos de Matlab para llamar al compilador de Matlab y abrir la ventana principal de Matlab COM Build. En esta ventana, seleccione Archivo → Nuevo proyecto para crear un nuevo proyecto. En este cuadro de diálogo, configure el nuevo proyecto, ingrese el nombre del componente y el nombre de la clase y seleccione el compilador apropiado.

(2) Administrar m archivos. Haga clic en el botón "Agregar archivo" para agregar el archivo de función M escrito (el archivo M debe comenzar con Función, es decir, debe ser un archivo de función).

(3) Generar componentes. Utilice el menú de objetos Build--àCom para crear un componente COM y compilar el archivo MATLAB .m en un archivo .dll.

(4) Componentes de empaquetado y distribución: después de una compilación exitosa y pasar la prueba, los archivos relevantes se pueden empaquetar y distribuir al dispositivo de destino. Haga clic en "Componente" → "Componente del paquete" para crear un programa ejecutable autoextraíble. Nota: Cuando utilice el menú Componente--àPackageComponent para generar un archivo .exe, seleccione el cuadro de selección delante de "includeMCR" para que el archivo .exe generado pueda incluir el programa MCRInstaller.exe.

6. Copie el archivo .ctf compilado, el archivo .dll y el archivo .exe al directorio del proyecto VB.

7 Cree un proyecto VB y llame al componente COM para. cree un nuevo proyecto "EXE estándar", ingrese al entorno de programación VB, haga clic en la opción "Referencia" en el menú "Proyecto", seleccione los componentes generados en el paso 5 en la lista y agregue la biblioteca de tipos MWComUtil 7.0, haga clic en " Botón "Aceptar".

Después de que el proyecto VB haga referencia a estos componentes, debe seguir los siguientes pasos para llamar al archivo Matlab:

Dim rt2 As rt2_1.rt2_1class 'Declarar un componente COM

Establecer rt2 = Nueva clase rt2_1.rt2_1

Llamar a rt2.rt2 'Ejecutar el archivo rt2_1_1_0.dll

8. Empaquetar el proyecto VB Al empaquetar, debe compilar y generar. el archivo .ctf, el archivo .dll y el .exe se agregan al paquete del proyecto VB;

9. En la computadora cliente, ejecute el programa .exe generado en el paso 5 y verifique el .dll generado en paso 5. Registre la biblioteca de vínculos dinámicos y ejecute automáticamente el programa MCRInstaller.exe para instalar el tiempo de ejecución del compilador matlab en la computadora cliente.

10. Copie el paquete de instalación del proyecto VB en la computadora cliente, ejecute el programa de instalación en el paquete de instalación del proyecto VB e instale el programa del proyecto VB; en En la computadora cliente, el programa compilado por MATLAB y Visual Basic se puede ejecutar normalmente.

Notas:

1. El programa de aplicación exe compilado por VB y compilado con una mezcla de MATLAB y Visual Basic no se puede trasplantar fácilmente y debe empaquetarse. al empaquetar el archivo .dll, luego copie el paquete de instalación del proyecto VB empaquetado en la computadora cliente, ejecute el programa de instalación setup.exe en el paquete de instalación del proyecto VB e instale el proyecto VB. Una vez completada la instalación del proyecto VB, ejecute el archivo . El programa exe generado en el paso 5 puede evitar los siguientes mensajes de error:

(1) "Advertencia: no se pudo iniciar Java Virtualmachine".

"Advertencia: deshabilitando el soporte de Java".

"Advertencia: deshabilitando el soporte de Java". p>

"Función o variable no definida 'matlabrc'."

(2)"Error de automatización" o "Error de automatización"

(3)" Error de tiempo de ejecución '429': El componente ActiveX no puede crear un objeto"

(4) "La instancia MCR no está disponible".

2. En el directorio donde se encuentra el proyecto VB, excepto el quinto. Excepto el Archivo de biblioteca de enlace dinámico .dll generado en este paso; no pueden existir otros archivos .dll. De lo contrario, al ejecutar un programa compuesto por lenguajes MATLAB y Visual Basic en el cliente, aparecerá el siguiente mensaje de error:

"Advertencia: Error al iniciar la máquina virtual Java."

"Advertencia: Deshabilitando el soporte de Java."

"Función o variable no definida 'matlabrc'."

3. Si copia directamente el programa del proyecto Vb al cliente en lugar de instalar el programa del proyecto Vb para ejecutar un programa compuesto por lenguajes MATLAB y Visual Basic, aparecerá un mensaje de error de "Error de automatización" o "Error de automatización". esto se puede resolver mediante uno de los siguientes métodos:

(1) Ejecute el programa .exe generado en el paso 5 en la computadora cliente y registre la biblioteca de vínculos dinámicos .dll generada en el paso 5. Puede Resuelva el funcionamiento anormal del programa causado por "Error de automatización" o "Error de automatización".

(2) Ejecute el programa regsvr32.exe directamente en la computadora cliente para registrar la biblioteca de enlaces dinámicos .dll generada en el paso 5, lo que también puede resolver el problema causado por "Error de automatización" o "Error de automatización". "El programa se está ejecutando de forma anormal.

4. Si el programa .exe generado en el paso 5 no se ejecuta en la computadora cliente, registre la biblioteca de vínculos dinámicos .dll generada en el paso 5, luego ejecute MATLAB y Cuando se mezcle un programa con Visual. En lenguaje básico, aparecerá el mensaje de error "Error de tiempo de ejecución '429': el componente ActiveX no puede crear un objeto", o aparecerá el mensaje de error "Error de automatización" o "Error de automatización".

5. Si aparece el mensaje de error "La instancia MCR no está disponible" al ejecutar un programa compuesto por MATLAB y Visual Basic en el cliente, puede instalar el proyecto VB empaquetado. copiar el paquete a la computadora cliente, ejecutar el programa de instalación en el paquete de instalación del proyecto VB e instalar el programa del proyecto VB.