Page 1 of 1

Error Compilando en fivewin para Harbour 1006

PostPosted: Wed Jul 14, 2010 9:06 am
by Andrés González
Antonio, me pasan dos cosas una vez solucionados los errores de compilación.

1) Si compilo con la opción debug de UESTUDIO. La aplicación arranca y cuando empieza el debuger de Carles, me dice que no encuentra los ficheros PRG. Con la versión anterior que utilizaba la 1002, esto no ocurría. El problema es que espera encontrar el fichero fuente dentro de su mismo directorio debuger. La fuente se encuentra en otro directorio que se encuentra a su misma altura que se llama Source.

2) Si seleccionas el codigo fuente buscandolo funciona perfecto, menos cuando va a un linea del activex y alli se muere el programa.
Code: Select all  Expand view
oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )

Aquí se interrumpe sin sacar ningún error.


El mismo código con la versión harbour 1002, todo funciona fenomenal. Que puedo hacer para solucionarlo?

Re: Error Compilando en HArbour 1006

PostPosted: Wed Jul 14, 2010 9:11 am
by Antonio Linares
Andrés,

Vamos a revisarlo cuanto antes, gracias :-)

Re: Error Compilando en fivewin para Harbour 1006

PostPosted: Thu Jul 15, 2010 6:24 am
by Carles
Andres,

1.- Cuando arranca el debugger buscar el fichero fuente en la misma carpeta que el ejecutable. Si no lo encuentra, le tienes de indicar la carpeta donde se encuentran (no es tan listo :D )

2.- He probado el siguiente ejemplo con TActiveX() y con la 10.06 y funciona perfectamente !
Code: Select all  Expand view
#include "fivewin.ch"

STATIC oMyWnd

*-----------------
FUNCTION TestWnd()
*-----------------
    LOCAL cVar := Time()

    DEFINE WINDOW oMyWnd TITLE 'Time ' + cVar MENU BuildMenu()

    ACTIVATE WINDOW oMyWnd

    MsgInfo( cVar )

RETU NIL

*----------------------------------
STATIC FUNCTION BuildMenu()
*----------------------------------
   LOCAL oMenu

   MENU oMenu 2007
      MENUITEM "Aplicacion"
      MENU
         MENUITEM "Test ActiveX"    ACTION TestAX()
         SEPARATOR
         MENUITEM "Exit"            ACTION oMyWnd:End()
      ENDMENU
   ENDMENU

RETU oMenu

*-----------------------
STATIC FUNCTION TestAx()
*-----------------------
    LOCAL oActiveX

    oActiveX := TActiveX():New( oMyWnd, "Shell.Explorer" )

    oMyWnd:oClient := oActiveX
   
    oActiveX : Do("Navigate2", "www.fivetechsoft.com")

    oMyWnd:Resize()

RETU NIL


Puedes probarlo ?

Re: Error Compilando en fivewin para Harbour 1006

PostPosted: Thu Jul 15, 2010 9:51 am
by Andrés González
Hola Carles, pues no lo entiendo. Con la 10.02, compilo perfectamente y cuando sale el debuger ya me incluye el prg fuente, que indudablemente no lo tengo en la carpeta del ejecutable, sino en otra carpeta, que no se encuentra ni siquiera por debajo de la carpeta ejecutable, sino en otra que esta a su misma altura. Sin variar nada lo compilo con la 10.06 y esto no funciona. Sí, me sale el debuger pero no con el prg fuente, me pide que lo busque. No se varían para nada las condiciones del programa todo es lo mismo, es el mismo proyecto solo que con el UESTUDIO puedes seleccionar otro compilador.

Por así decirlo, con la versión 10.02 esta es la estructura del ejecutable y su código fuente y te digo que funciona a la perfección:
g:\FWH\Samples\Google\Googlemap\Source\Main.prg (Hay muchos mas prg y los localiza todos, con F8 me pasa a todos los distintos prg segun se ejecuta el programa)
g:\FWH\Samples\Google\Googlemap\Debug\Googlemap.EXE

eso sí, el proyecto de UESTUDIO está a la misma altura que esas dos carpetas:
g:\FWH\Samples\Google\Googlemap\Googlemap.prj

La verdad Carles, siempre me había funcionado así desde que instalé la 10.02 con UESTUDIO y me ha ayudado mucho, por eso me extraña que me digas que no es tan inteligente. Otra cosa es que después el ejecutable lo varíes de carpeta, lo cual podría entender que te pida donde tiene el código fuente. Todos los debuger, siempre muestran el código fuente de forma directa. Pero incluso variando el ejecutable, como acabo de hacer, sigue sabiendo donde tiene el código fuente con la 10.02. Ahora pienso que la diferencia de versiones pueda ser debido a que la 10.02 te guarde toda la ruta del prg y la 10.06 no. Pero te aseguro Carles que a mi la 10.02 me funciona a las mil maravillas y no he modificado absolutamente nada, tal cual vino de fivetechtsoft.

He comparado los ficheros de configuración UESTUDIO para el harbour 1002 y el del harbour 1006 y no varían en nada, solo en el numero de versión. Con lo cual es algo raro.

Por otro lado el error del activex solo lo tengo en la version 1006. Voy a mirar de compilar tu codio a ver si me hace lo mismo, ya que donde falla es la misma función que tu has puesto.

Re: Error Compilando en fivewin para Harbour 1006

PostPosted: Thu Jul 15, 2010 10:14 am
by Carles
Andres,

De la version de 10.02 a la que hay ahora se han realizado muchos cambios para mantener la compatibilidad entre Harbour y xHarbour. Es posible que debido a estos cambios no se pueda controlar por igual. Tengo de mirarlo pero diria que solo pide donde estan los fuentes cuando no es capaz de encontrarlos, pero lo tengo de mirar...

Intentare buscar una solucion.

Re: Error Compilando en fivewin para Harbour 1006

PostPosted: Thu Jul 15, 2010 11:09 am
by Andrés González
Carles veo que introduces mucho la funcion cFileNoPath, no puede ser que pierda el path, lo raro es que el primer directorio al que acude una vez que no lo encuetra es el del ejecutable. Carles piensa también que entre las versiones han cambiado también el tema del curdrive(), harbour ya no lo utiliza. La verdad es que es una putada que no te encuentre los prg. Bueno voy a ver si veo donde es que pierde el prg....

Re: Error Compilando en fivewin para Harbour 1006

PostPosted: Thu Jul 15, 2010 12:23 pm
by Andrés González
Carles, en la linea 598 ya se pierde el path al poner cFileNoPath, si lo quito te muestra el path del ejecutable + el path del source

598
::aStack[ nPos ][ CSTACK_MODULE ] := cFileNoPath( ProcFile(2) )

a partir de la 636 es donde viene todo el follón que no acabo de coger muy bien.

He conpilado con el de la version 10.02 y funciona como toca, el problema es que veo que has introducido muchas modificaciones que son muy interesantes.

Pero aun así el problema del Activex sigue fallando, seguro que me falta algo para que me coja bien el activex.