Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: pedroesca en Septiembre 27, 2012, 10:46:44 am

Título: Ejecutable generado de Windows 7
Publicado por: pedroesca en Septiembre 27, 2012, 10:46:44 am
Buenas a todos!!!! desde hace un tiempo he tenido un inconveniente, que supongo a mas de uno les habrá pasado. El asunto es referido a algo un tanto básico, pero que no deja de ser un problema, y es la Generación de Ejecutables desde el mismo IDE de vb6 (Archivo >> Generar *.exe). Si lo realizado desde un Windows XP 32 bits y ejecuto la aplicación en un Windows 7 64 bits, no hay ningún problema, se ejecuta y levanta la aplicación como si nada.
Ahora bien, si genero el ejecutable desde mi PC con Windows 7 64 bits, e intento correr la aplicación en una PC con Windows XP de 32 bits, ni siquera intenta abrir, o en algunos caso tira un mensaje de error.
A algunos le ha sucedido?? es obvio que el problema es la arquitectura del S.O., pero tendría esto alguna solución? ya que por el momento solo lo soluciono compilando la aplicación en XP 32 bits y listo.
Desde ya muchas gracias.
Título: Re:Ejecutable generado de Windows 7
Publicado por: E N T E R en Septiembre 27, 2012, 11:05:35 am
Así es Pedro, yo tengo también ese problema lo mas raro es que en algunas PC no más falla por que tengo varios clientes que tiene WinXP y a ellos le funciona y a algunos NO, también me paso con Win7 hay algunos clientes que tiene Win7 yo compilo en Win7 también y el mismo problema lo raro es que solo a algunos falla.

Yo solucione montando una maquina virtual con WinXP ahi lo compilo y sin problema.
Título: Re:Ejecutable generado de Windows 7
Publicado por: pedroesca en Septiembre 27, 2012, 11:20:27 am
E N T E R, probá con esto:
Código: [Seleccionar]
Private Declare Function LoadLibraryA Lib "kernel32" (ByVal szLib As String) As Long
Private Declare Function CallWindowProcA Lib "user32" (ByVal adr As Long, ByVal p1 As Long, ByVal p2 As Long, ByVal p3 As Long, ByVal p4 As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal szFnc As String) As Long
Private Declare Function GetModuleHandleA Lib "kernel32" (ByVal szModule As String) As Long
 
 
Private Sub InitCommCtl()
    Dim lngLib As Long
    Dim lngAdd As Long
   
    lngLib = GetModuleHandleA("comctl32.dll")
   
    If lngLib = 0 Then
        lngLib = LoadLibraryA("comctl32.dll")
    End If
   
    lngAdd = GetProcAddress(lngLib, "InitCommonControls")
    If lngAdd = 0 Then
        Exit Sub
    End If
    Call CallWindowProcA(lngAdd, 0, 0, 0, 0)
End Sub

Y llamá a ese Sub en el Sub_Main, y decime si te funciona, lo acabo de hacer y compilé la aplicación en W7 e inmediatamente intenté correrla en Win XP, y sabés que??? FUNCIONÓ a la perfección. Fijate vos y decime si te funciona.
Título: Re:Ejecutable generado de Windows 7
Publicado por: raul338 en Septiembre 27, 2012, 12:05:51 pm
Yo tambien tuve esos problemas, y no con x64, sino de un windows 7 de 32bits no funcionaba si quiera en un XP 32bits....

Exe compilados en windows 7 no funcionan con windows xp (http://leandroascierto.com/foro/index.php?topic=610.0)

En internet alguien se tomo la molestia de hacer una diferenciación de archivos generados tanto en win7 como winXP y hay una gran diferencia en el codigo final, será por eso?

Tambien tuve problemas de "cerrado automatico" sin errores ni nada, cuando intento a conectar a mYSQL de alguna forma, en cambio de otras, funciona de lo más bien! :huh:
Título: Re:Ejecutable generado de Windows 7
Publicado por: zxs23 en Septiembre 27, 2012, 06:54:03 pm
Hola a mi paso lo mismo, cuando creaba el exe en win7 32bits e intentaba abrir dicho exe desde winXp no habria, supongo que algunas referencias no eran compatibles por que si creo un exe win7 el cual solo tiene un formulario vacio y lo ejecuto en winXP funciona sin problemas, todo debe estar en las referencias o el codigo que se utliza en cada proyecto.