Error 429 en un ejecutable

saroaes21

Lanero Regular
21 Mar 2005
19
Hola tengo una aplicacion creada en VB 6.0 en la cual he declarado una DLL, a la hora de llevar el ejecutable a otro ordenador que no tiene instalado VB (y en el cual no se puede instalar por problemas de permisos de una empresa) me da este error el 429, cómo puedo solucionarlo??

Gracias de antemano por vuestra ayuda.Un saludo
 
Si llevas el sólo ejecutable, vas a tener problemas. Debes generar un instalador con las herramientas del Visual Studio o con una de terceros (me gusta mucho el InstallShield). Además del ejecutable, para que funcione la aplicación se requiere tener instaladas las librerías de tiempo de ejecución de VB6 y todos los DLL y archivos de recursos a los que hagas referencia en el programa.

Debes incluir todo eso en el instalador y luego sí instalar el programa en otra máquina.
 
El_Rulas dijo:
Otra alternativa es instalar la maquina virtual de VB en la maquina, luego sí corres el ejecutable.

????? ¿Máquina Virtual?

Si te refieres al Framework, eso es sólo para las aplicaciones .NET. En VB 6.0 y anteriores se requieren las Runtime Libraries. Si las instala y el aplicativo no usa ningún archivo de recursos ni ninguna otra DLL, con sólo copiar el ejecutable le funciona. Pero el dice que está haciendo referencia a una DLL, entonces lo mejor es que se arme un instalador.

La herramienta que viene en el Visual Studio analiza el proyecto de VB, incorpora los archivos necesarios y compila un instalador. Es un proceso automático a través de un Wizard, más fácil no se puede.
 
senseimagnus dijo:
????? ¿Máquina Virtual?

Si te refieres al Framework, eso es sólo para las aplicaciones .NET. En VB 6.0 y anteriores se requieren las Runtime Libraries. Si las instala y el aplicativo no usa ningún archivo de recursos ni ninguna otra DLL, con sólo copiar el ejecutable le funciona. Pero el dice que está haciendo referencia a una DLL, entonces lo mejor es que se arme un instalador.

La herramienta que viene en el Visual Studio analiza el proyecto de VB, incorpora los archivos necesarios y compila un instalador. Es un proceso automático a través de un Wizard, más fácil no se puede.

Viejo versiones de Visual Basic la 6.0, y anteriores trabajan con una maquina virtual, es un grupo de DLL's con las funciones de VB esas que menciono, pero maquina virtual fue el bautizo a esas DLL's y controles ActiveX con los controles VB ... actualmente funciona similar en .NET, pero se llama Framework ...

Ese Wizard para crear instalador que usted menciona, incluye la instalación de esa maquina virtual, y librerias MDAC, DAO según .. si uso base de datos etc ... lo que le propuse al autor del foro es que podria instalar las cosas explicitamente.

PD: Actualmente no sé si WindowsXP tiene la maquina virtual de VB integrada, pero en versiones anteriores WinNT, Windows ME, 98 etc.... un ejecutable VB no funcionaba al vuelo ! ... entonces si quiere soporte a multiples versiones, tenga la maquina virtual a la mano.
 
El_Rulas dijo:
Viejo versiones de Visual Basic la 6.0, y anteriores trabajan con una maquina virtual, es un grupo de DLL's con las funciones de VB esas que menciono, pero maquina virtual fue el bautizo a esas DLL's y controles ActiveX con los controles VB ... actualmente funciona similar en .NET, pero se llama Framework ...

Hombe, tienes un error en la terminología. Lo que dices es correcto, pero el grupo de DLLs de VB 6.0 y anteriores no es una máquina virtual sino los RunTime Libraries (RTL) o librerías de tiempo de ejecución. En cambio, el .NET Framework sí es una máquina virtual.

Las RTL son un grupo de DLLs a las que hace referencia el lenguaje VB durante la ejecución de un programa. El VB 4.0 y anteriores eran interpretados y necesitaban de estas RTL para su ejecución. En el caso de estas versiones, se trataba de una única DLL. Para la versión 4.0, eran dos DLL: una para código de 16 bits y otra para código de 32 bits.

A partir de VB 5.0, los programas de VB ya podían compilarse en código nativo de máquina, ya no necesitaban un interpretador en una DLL. Pero a cambio, las RTL se convirtieron en un grupo de archivos que contenían muchas de las funciones intrínsecas del lenguaje (similar a las Class Libraries de C++). Estas librerías deben estar instaladas en el PC para que el programa VB 5 o 6 funciones, pero sólo es necesario instalarlas una vez. Es posible crear un instalador sólo con estos archivos.

El concepto de máquina virtual lo introdujo Java: La JVM es una capa de software intermediario entre la aplicación y el procesador. El código de Java se compila en un lenguaje intermedio, no en código nativo de máquina. Esto brinda la posibilidad de crear aplicaciones multiplataforma: si en un programa Java no se utiliza ninguna función específica de un SO, la aplicación funcionará en cualquier máquina que tenga instalada una JVM, independientemente del SO y el procesador.

Sobre esta idea, Microsoft cambió el paradigma de sus lenguajes de programación, incluido VB, para utilizar una máquina virtual, que es el .NET Framework. Los programas en VB 6.0 están compilados en lenguaje de máquina y acceden a funciones en las RTL, que también están compiladas en lenguaje de máquina. En cambio, los programas en VB.NET están compilados en un lenguaje intermedio (IL), que es compilado a lenguaje de máquina por el compilador en tiempo real (JIT) la primera vez que se ejecuta la aplicación. El JIT no compila la aplicación completa sino las partes que se van ejecutando. Si no hay cambios en la aplicación, el JIT no vuelve a compilar y se ejecuta el código nativo de máquina, con lo que la aplicación .NET se ejecuta más rápidamente la segunda vez que la primera.

Los lenguajes de desarrollo de Microsoft eran independientes, con lo que habían problemas y limitaciones para acceder a clases de C++ desde VB, por ejemplo. Ahora, todos los lenguajes .NET son una capa de software que va montada sobre el Framework, de manera que comparten los mismos tipos de datos, manejo de memoria, etc. Por eso el cambio de VB 6.0 a VB.NET fue tan fuerte, ahora VB comparte el mismo nucleo con C# y Visual C++, lo que le permitió convertirse por fin en un lenguaje completamente OO.

En Windows Server 2003, Windows Mobile 2003 y todos los Windows proyectados de Longhorn en adelante, viene el .NET Framework integrado al OS y se que hay un proyecto de crear una versión del Framework para linuk, pero no se qué tan avanzado vaya.
 
Gabo77 dijo:
orale, cuanta cosa, eso del FrameWork de Linux lo implementa Mocosoft?

Nop, es un esfuerzo del Open Source liderado por Novell, el proyecto se llama MONO, ya tienen un compilador de C# y están trabajando en VB.NET. Tienen una implementación de ASP.NET, y el proyecto sigue:

http://www.mono-project.com/Main_Page

Tienen versiones para Unix, Linux y MacOS. Esto abre la posibilidad de desarrollar software multiplataforma en VB y C#.
 

Los últimos temas