Primer programa "Hola xHabour"

Ver el tema anterior Ver el tema siguiente Ir abajo

Primer programa "Hola xHabour"

Mensaje  Admin el Miér Jul 23, 2008 2:29 pm

Primero que nada, quiero decirles que por mi programacion empezo por dbase III, Foxpro y luego clipper, el cual avance hasta la version 5.01, lo demas ya todos los sabemos, realmente el clipper lo daba por muerto, asi como se oye, aunque hay empresas que aun usan los sistemas que diseñe, muchas otras ya pasaron a VFP, algunas otras a Vbasic con SQL, pero muchas otras me piden que siga con los programitas clipper, el camino para llegar a harbour no me ha sido muy facil, ya que nadie te da exactamente que es lo que hay que hacer para pasar a plataforma harbour o xharbour, de lo poco que he investigado puedo decir que harbour es un lenguaje digamole asi mas estable pero menos robusto que xharbour, aunque para mis necesidades creo que los dos se adaptan, si no estoy mal los dos son de codigo abierto, es decir no hay que pagar nada por usarlos, pero xharbour tiene algunas adaptaciones extras las cuales si tienen un costo por investigacion y estar trabajando en ello.

Bueno me estoy alargando un poco, pero ahora vamos al grano, eso si todo en modo de consola. El paso inicial es bajarte el harbour o el xharbour, yo opte por el segundo que lo puedes encontrar en www.xharbour.org en la opcion de downloads encontraras Binaries y alli la plataforma que quieras usar, en mi caso es windows, por aparte vamos a usar "xHarbour Binaries for Borland C++ 5.5.1", por otro lado tenemos que bajar el Borland C++ 5.5.1 que en la misma pagina de www.xharbour.com opcion Download - Required Tool, se encuentra.

Bueno despues de ya tener instalados estos programas, que de hecho ya tienen su instalador, vamos a crear nuestro primer programita hola.prg, en Xp clic en inicio - ejecutar y nos vamos al modo de consola con teclear "cmd" y "Enter", podemos usar el edit del dos y tecleamos los siguiente,

Procedure main()
clear
@1,1 Say "Hola xharbour"
wait "Presione una tecla para continuar"
return

Guardamos y, vamos a compilar.

Gracias a Jorge Eduardo de unos de los grupos de Yahoo me paso este archivo .bat que esta de lujo.

pueden crearlo igual con edit y copian las lineas de abajo, hay que tener cuidado en unicamente darles los paths en donde se encuentran el xharbour y el borland, y listo, ademas dependiendo si le pusieran a su .bat algo asi como xcompile.bat, y su archivo se llama hola.prg, vamos a compilar asi > xcompile hola

y listo ya deberia estar generado el .exe

** copiar desde aqui para el .bat**

@ECHO OFF
CLS

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\xharbour
set bcdir=c:\borland\bcc55\bin

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bcc32 -M -c @b32.bc
:ENDCOMPILE

echo c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\hsx.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\Lang.lib + >> b32.bc
echo %hdir%\lib\macro.lib + >> b32.bc
echo %hdir%\lib\rdd.lib + >> b32.bc
echo %hdir%\lib\dbfntx.lib + >> b32.bc
echo %hdir%\lib\dbfcdx.lib + >> b32.bc
echo %hdir%\lib\common.lib + >> b32.bc
echo %hdir%\lib\libmisc.lib + >> b32.bc
echo %hdir%\lib\CodePage.lib + >> b32.bc
echo %hdir%\lib\DbfFpt.lib + >> b32.bc
echo %hdir%\lib\pcrepos.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\ace32.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib, >> b32.bc

ECHO *
ECHO Linking...
%bcdir%\ilink32 -Gn -Tpe -s @b32.bc

rem delete temporary files
rem @del %1.c

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
GOTO EXIT
ECHO

:LINKERROR
rem PAUSE * Linking errors *
GOTO EXIT

:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT

Admin
Admin

Mensajes : 3
Fecha de inscripción : 23/07/2008

Ver perfil de usuario http://harbour.foroslatinos.net

Volver arriba Ir abajo

Compilando con xedit

Mensaje  byrpa el Miér Nov 19, 2008 5:17 pm

Estuve investingando y encontre este link interesante.

http://objetopersistente.blogspot.com/2008/05/de-clipper-x-harbour-con-xedit.html

no lo he probado pero hay que compartir.

bye

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para compilar comodamente

Mensaje  Heztevan el Jue Nov 20, 2008 9:27 pm

Hagan la prueba con el link de objeto persistente.
Con esa guia empece yo hace unos 3 meses y ya he migrado varios proyectos de muchos modulos cada uno... les garantizo que es la manera mas comoda, limpia y trasparente de compilar tu codigo clipper con harbour o xharbour (incluso fivewin, minigui y oohg), para los problemitas iniciales que se presentan (falta de librerias, errores de settings etc.) en la cadena de posts ya estan solucionados todos.

prueben y olvidense de los BATs de compilado/linkeado que estan mas complicados que el propio sistema. Smile

Saludos.

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Migrando de clipper 5 a Xharbour

Mensaje  raullando el Vie Nov 21, 2008 1:30 pm

Hola!
Este foro me cae como anillo al dedo.
Estoy precisamente investigando para poder pasar mis programas de clipper 5 a Xharbour para lograr que corran a 32 bits.
Al principío pensaba que era solo de compilar y listo, pero parece que pueden existir algunos problemas con ciertos comandos.
Por ejemplo, hice una prueba y parece que el DBedit no funciona en Xharbour y cuando lo elimino, el programa corre pero da ciertos errores extraños de comportamiento, así que eso me hace pensar que el pase no es tan fácil.
A ustedes le ha dado esto u otros problemas?
Muchas Gracias

raullando

Mensajes : 5
Fecha de inscripción : 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Problemas con dbEdit?

Mensaje  Heztevan el Vie Nov 21, 2008 6:23 pm

Hola Raul.

En mi experiencia te comento que los sistemas que ya tengo compilados y ejecutandose con xHarbour hago varias llamadas a dbEdit, y no me presentó grandes problemas, el unico detalle que te puedo confirmar es que al iniciar el browse solo dibujaba el marco, parpadeaba y se regresaba (no se quedaba dentro de dbEdit) no se si este sea el problema que tienes, lo que yo hice para corregir esto fue modificar la funcion de captura de teclas (dbfunc, de los parametros) eliminé la que usaba con clipper y la reemplace por una basica, de hecho la tome de los ejemplos del dbEdit.

Espero que esto te sea de ayuda.

Saludos.

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

compilar varios prgs xharbour

Mensaje  byrpa el Vie Nov 21, 2008 10:02 pm

Pues que bueno que podamos compartir nuestras opiniones, no hace mucho tiempo empece a tratar de cambiarme a xharbour, pero he logrado compilar solo programas pequeños, los meto todo en un solo archivo prg, ahora cuando intento compilar varios prg, si se me traban las carretas, he estado probando con el hbmake que trae el propio xharbour, pero no he tenido exito, con el link de objeto persistente, cuando trato de bajar el xedit me da un error, al parecer es del servidor donde se encuentra el archivo, lo baje de la propia pagina de xailer, pero no da las mismas opciones, asi que, tengo que seguir intentando con los bat y el hbmake, si alguien tiene el xedit seria fabuloso que lo pusieran para los que aun no lo tenemos, o alguna otra forma para compilar varios prgs.

gracias a todos por contestar.

Very Happy

PD: en realidad he buscado por todos lados.

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

compilar varios programas

Mensaje  raullando el Sáb Nov 22, 2008 12:15 am

Para el amigo Byrpa, si quieres que te ayude envíame un correo a raullando@yahoo.com.ar. Avísame por este medio cuando me has enviado el correo

Bueno, hice paso a paso lo que el administrador indica y cuando ejecuto el xcompile.bat aparece una serie de mensajes:
Compiling...
xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'hola.prg' and generating preprocessed output to 'hola.ppo'...

Lines 7, Functions/Procedures 1
Generating C source output to 'hola.c'...
Done.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
hola.c:
Error E2209 c:\xharbour\include\hbvmpub.h 63: Unable to open include file 'assert.h'
Error E2209 c:\xharbour\include\hbdefs.h 58: Unable to open include file 'stdarg.h'
Error E2209 c:\xharbour\include\hbdefs.h 59: Unable to open include file 'stdio.h'
Error E2209 c:\xharbour\include\hbdefs.h 60: Unable to open include file 'stdlib.h'
Error E2209 c:\xharbour\include\hbdefs.h 61: Unable to open include file 'string.h'
Error E2209 c:\xharbour\include\hbsetup.h 61: Unable to open include file 'limits.h'
Error E2188 c:\xharbour\include\hbdefs.h 454: Expression syntax
Error E2257 c:\xharbour\include\hbdefs.h 476: , expected
Error E2139 c:\xharbour\include\hbvmpub.h 268: Declaration missing ;
Error E2141 c:\xharbour\include\hbapi.h 596: Declaration syntax error
Error E2451 hola.c 29: Undefined symbol 'NULL'
Error E2141 hola.c 29: Declaration syntax error
Error E2190 hola.c 29: Unexpected }
Error E2190 hola.c 29: Unexpected }
Error E2040 hola.c 29: Declaration terminated incorrectly
Error E2190 hola.c 37: Unexpected }
Error E2190 hola.c 37: Unexpected }
Error E2109 hola.c 37: Not an allowed type in function hb_vm_SymbolInit_HOLA
*** 18 errors in Compile ***
*
Linking...
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unable to open file 'C0W32.OBJ'

Busqué algunos archivos como el assert.h y no existe. Que estoy haciendo mal?
Instalé los 2 programas en los directorios por default: c:\xharbour y c:\borland

Saludos

raullando

Mensajes : 5
Fecha de inscripción : 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para los interesados en obtener el xEdit2

Mensaje  Heztevan el Sáb Nov 22, 2008 11:09 am

Hola a todos...

Si estan teniendo problemas para encontrar el xEdit, para seguir las instrucciones de Objeto Persistente, les cuento que yo tambien pasé por lo mismo y hasta quedó huella de mi frustración en la cadena de posts en el mismo blog. pero finalmente lo conseguí y ya he llevado a buen termino varias migraciones de código clipper compilado con xHarbour.

A quienes esten interesados en probar con el xEdit pero no han podido conseguirlo, yo se los puedo enviar solo manden un correo a nodal.esteban@ymail.com com gusto les hago llegar el archivo, y de verdad que siguiendo las instrucciones de René Flores en Objeto Persistente verán resultados concretos, en mi opinión no hay mejor guia de inicio rápido para Harbour que esta.

Saludos y éxito a todos.

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

primer programa

Mensaje  raullando el Lun Nov 24, 2008 10:56 pm

Muchas Gracias, Esteban!!!
Ya lo hice, me dió el error del dbzip.lib, lo elimine de las librerías y me corrió al instante....por fin!!!
Ahora tengo otras dudas, por ejemplo, quiero activar el debug como en clipper, pero la opción F7 o F4 no hacen nada y por ejemplo si trato de utilizarlo en este mismo ejemplo me aparece la pantalla negra pidiendo el nombre(el read del get), y no veo las instrucciones que están antes de eso, ni las que están después, pero me imagino que tiene que poderse ya que vienen las opciones, como haces tú?

Por otra parte, intenté con una aplicación que tengo(la más sencilla de todas) , hice lo que venía en el objeto persistente para cuando son muchos prgs, al compilar aparecen cientos de warnings de ambigous reference, y luego 8 errores pertenecientes a ciertas funciones de algunos programas:
del extend.prg: __totbrows, __totbcolu, fieldwbloc, de clipper:__toget, __color y del blinker: blierrnum, blierrprm y blicalnum, así que opté por eliminar las líneas que hacían referencia a ellos, para ver que pasaba y ya no me da errores, solamente los warnings, el problema es que cuando se ejecuta sale la pantalla negra y desaparece, de igual forma si copio el ejecutable a donde están los archivos y lo ejecuto desde la pantalla del DOS directamente, aparece y desaparece y me deja-como decimos aquí- viendo para el ciprés....
Pienso que si pudiera correr el debug podría por lo menos ver que está haciendo, pero como no puedo hacer ni eso, ya te imaginarás como me siento.....
Puede ser que el error venga de que no sabe cual es el prg principal, sin embargo, hice lo que dice en la página: al principal le puse a la funcion principal function main y puse el prg que se llama diferente, dentro de propiedades del proyecto como el prg principal, pienso que puede ser esto, por que si le pongo el get-read a la function main, tampoco me lo hace.

raullando

Mensajes : 5
Fecha de inscripción : 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Compilar con xEdit

Mensaje  Heztevan el Mar Nov 25, 2008 11:12 am

Hola,

La verdad no he usado el debug con el xEdit (espero no llegar a necesitarlo) si quieres ver donde se queda el programa, en la carpeta donde los ejecutas harbour crea el archivo "error.log" ahi te guarda los mensajes de error y el ambiente del programa. Ahora, si el problema es que no reconoce el PRG principal lo puedes obligar, en la carpeta del proyecto busca y abre con un editor de texto (notepad) los archivos con extension .xpj (en la seccion [Desktop]) y .xdt (en la seccion [Files]) asegurate que el PRG principal quede en el numero uno de la lista de programas, asi te aseguras que el PRG principal (Main()) tome el lugar que le corresponde.

Saludos.

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

primer programa

Mensaje  raullando el Mar Nov 25, 2008 9:21 pm

bueno, luego de hacer la modificación en el archivo .xpj, ahora sí el compilador sabe cual es el primer programa a ejecutar, lo malo es que yo esperaba algo más limpio en la conversión, pero por ejemplo en la pantalla principal que existe una rutina para pedir la clave, no se ve absolutamente nada, así que siguiendo el instinto, le escribo la misma y entonces entra a otra pantalla donde da un mensaje de: Unrecoverable error 9003: "Too many recursive error handler calls", me imagino por lo que me han dicho que el problema es el dbedit, así que quitó el dbedit(esperando luego si esto sirve, hacer la rutina a pie que simule un dbedit) y ahora si entra al menú principal, donde aunque es un prompt (achoice) en este ejecutable no logro ver en que opción estoy, pero como tengo una descripción al moverme, entro a cualquiera de las opciones identificándolas por esta descripción pero me vuelve a tirar el mismo mensaje "Too many...". Así que me imagino que esto se debe a que tampoco la función achoice es compatible, por lo que antepongo la pantalla más simple solo para ver si corre, y compilo nuevamente, cruzo los dedos, y aunque si me entra a dicha pantalla, en cuanto le doy enter, vuelve a tirar el mismo mensaje, así que me supongo que se puede deber a otro achoice que se encuentra en esta pantalla(y en todas las del sistema!!!!) que yo utilizo para desplazarme al próximo registro, al anterior, consultar, etc, así que la opción que quedaría aquí sería reconstruir practicamente la aplicación, lo que al final de cuentas quería evitarme, a menos que este haciendo algo mál o desconozca algo en todo esto.
Por otra parte, no me explico como pueden trabajar en una aplicación en Xharbour, sin tener un debugger, esto para mi sería un suicidio!!!
Cuando se da un error, uno quiere ir al fuente, ejecutar la aplicación y ver que hace el sistema paso por paso, pero sin un debug, sería imposible encontrar que es lo que hace la aplicación por dentro(no me refiero a errores de sintaxis, sino a errores de lógica, por ejemplo).
Muchas Gracias

raullando

Mensajes : 5
Fecha de inscripción : 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Incompatibilidad??

Mensaje  Heztevan el Miér Nov 26, 2008 5:59 pm

En mi experiencia de migracion no tuve mayores problemas, ni con el dbedit (fuera del cambio de la "user function") ni mucho menos con el achoice, la compatibilidad entre clipper y (x)harbour es al 100% (bueno al 98%, considerando personalmente el comportamiento del dbedit y de la funcion type() la cual cambie por valtype() ya que no regresa el mismo valor nulo). posiblemente el problema este en la logica de tu programa, aunque por logica te cuento que los sistemas que yo he migrado (3 hasta ahora) son muy viejos, no los hice yo y tienen una logica peor que si los hubieran hecho para dbaseII, codigo redundante, procesos ciclicos, etc. y lo unico que les hice fue quitar o cambiar los llamados a funciones de librerias externas (funcky, nanfor, etc), fuera de eso el resultado que tuve fue exactamente el mismo sistema (visual y operativamente) mas rapido obviamente, en lo visual tuve un problema con XP, la ventana que abria se perdia la posicion del cursor y mostraba parte o nada de la pantalla, pero se arreglo cambiando las propiedades de la pantalla seleccionando el tamaño correcto (80x25).

ahora Raul si te sirve, te recomiendo este link http://www.lawebdelprogramador.com/news/new.php?id=17&texto=Clipper/FiveWin para que hagas tus preguntas tecnicas, ahi me han ayudado mucho y he encontrado, sin preguntar aun, problemas solucionados anteriormente a otros usuarios que me han servido.

saludos.

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

COMPATIBILIDAD???

Mensaje  raullando el Jue Nov 27, 2008 10:19 am

Muchas Gracias, Hezteban, bueno, respiré profundo y volví a hacer algunas pruebas, ahora, lo que hice fué que me olvide de mi programa, y me puse a poner directamente el dbedit en un programa simple y el achoice y el prompt y el get y el inkey para ver que tal la compatibilidad.
Y me fué mejor de lo que pensaba, por ejemplo detecté que si se coloca un read y luego un dbedit, el sistema simplemente no reconoce el dbedit, ej:
nombre=space(40)
@1,1 say "digite su nombre" get nombre
read
use cias
vec_cta[1]="CODIGO"
vec_cta[2]="NOMBRE"
dbedit(1,10,30,80,vec_cta)

así que con solo agregar un @algo después, ya funciona!, por que? no tengo la mas mínima idea, pero así es:
nombre=space(40)
@1,1 say "digite su nombre" get nombre
read
@1,10 clear to 30,80
use cias
vec_cta[1]="CODIGO"
vec_cta[2]="NOMBRE"
dbedit(1,10,30,80,vec_cta)

y me imagino que pueden existir más cosas así, sin embargo, poco a poco se pueden ir detectando y solucionando.
Ahora el problema que tengo es lo del bendito debugger, creo que con eso, sería capaz de todo, que por cierto, encontré un enlace en:
http://objetopersistente.blogspot.com/2007/08/depurando-con-xailer.html y dice que también es posible activarlo con Xharbour, pero lo intenté y da un error al compilar:
_HB_FUN__DBGENTRY

raullando

Mensajes : 5
Fecha de inscripción : 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Migrar de Clipper a xHarbour Modo Consola

Mensaje  Lucho Montero el Sáb Nov 29, 2008 6:02 pm

Hola Gente:
Para compartir con ustedes, la migración que hice de mi Aplicación Comercial compuesta por 08 Módulos, de Clipper 5.2d DOS hacía xHarbour Modo Consola 32 bits ... la cosa no es tan dificil como la pintan solo que hay que detenerse a leer por lo menos un par de horas para entender los pasos a seguir ... requisito indispensable para la migración es tener los fuentes .PRG de las librerias de terceros como: Superlib.lib, Abraxas.lib, Catools.Lib, etc, pues es necesario compilar estos para obtener los nuevos .LIB pasados a 32 bits ... en el caso que no tengan los fuentes una alternativa es elaborar nuestras propias funciones para reemplazarlas ... bien en mi camino a la migración logré armar un Manual en donde indica paso a paso lo que tenemos que seguir ... encontrarán todo lo necesario en este link:

http://hosted.filefront.com/lmonterof/

Aquí encontrarán Manual para Migración, Borland, Brmake, xHarbour 1.0.0 la es una versión muy estable.

Lo bueno de todo esto, es que es totalmente gratuito.

Saludos.
Atte.
Lucho Montero.
LIMA - PERU.

Lucho Montero

Mensajes : 1
Fecha de inscripción : 29/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para que funcione el primer ejemplo

Mensaje  Admin el Mar Dic 02, 2008 8:57 pm

Fijate que volvi a hacer el ejemplo primero y lo que hay que hacer es configurar los cfg del compilador de Borland, como lo indica en la pagina de xharbour cuando bajas el compilador. Los archivos son bcc32.cfg y ilink32.cfg que en su interior indica, en donde has guardado el compilador. Creo que es lo que falta que no lo mencione en el primer ejemplo.

Saludos.

Si alguien puede subir algo, paso a paso seria ideal para todos los que buscan como trabajar con xharbour.

Admin
Admin

Mensajes : 3
Fecha de inscripción : 23/07/2008

Ver perfil de usuario http://harbour.foroslatinos.net

Volver arriba Ir abajo

Problemita con el xedit

Mensaje  byrpa el Jue Dic 04, 2008 1:30 am

Primero que nada estoy reconstruyendo un programa, que tiene la libreria printer.ch la cual no encuentro por ningun lado, lo que hice elimine todas las llamadas a esa libreria, segundo, me un problema el xedit con la llamada a la libreria hbzip.lib, la cual la elimine en la opcion Propiedades del proyecto - librerias, pero al quitarla y compilar de nnuevo me salen 37 errores que no salen, alguien me puede auxiliar.

Los errores son como estos

Error: Unresolved external '_HB_FUN_CSCONNINFO' referenced from D:\XEDIT\PROGRAMA\OBJ\ERRORSYS.OBJ
Error: Unresolved external '_HB_FUN_USUARIO' referenced from D:\XEDIT\PROGRAMA\OBJ\CUENTA.OBJ

Gracias por su ayuda.

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Problema con xEdit??

Mensaje  Heztevan el Vie Dic 05, 2008 10:57 am

Hola Byron,

Error: Unresolved external '_HB_FUN_CSCONNINFO' referenced from D:\XEDIT\PROGRAMA\OBJ\ERRORSYS.OBJ
Error: Unresolved external '_HB_FUN_USUARIO' referenced from D:\XEDIT\PROGRAMA\OBJ\CUENTA.OBJ

Estos errores son avisos de llamados a funciones no declaradas, Para solucionarlos primero hay que asegurarse que no son funciones de terceros incluidas en lib o en otros .OBJ, puedes buscar en todo el proyecto por ejemplo, ya tienes incluidos en el proyecto todos los PRGs que componen tu sistema, presiona <Shift>+<Ctrl>+"F" y en el texto a buscar CSCONNINFO que es la funcion del ejemplo, si NO te aparece la linea FUNCION CSCONNINFO o PROCEDURE CSCONNINFO pero si tienes referencias a esta (do csconnifo with..., csconninfo(param1,param2) ), entonces esa funcion no esta declarada en los PRGs que tienes cargados (es externa) por lo que hay que compilar con harbour el OBJ que la contiene, o si es libreria sin fuentes crear una propia que haga lo que hacia o hace la de terceros.
si los otros errores son algo asi como STATEMENT NOT ALLOWED OUTSIDE... es porque el codigo dentro de tus PRGs no esta contenido dentro de una funcion o procedimiento, ejemplo: tienes el programa "AltaCodigo.prg" dentro estan las lineas de codigo y funciones necesarias, para que este se ejecute, en clipper haciamos el llamado desde otro PRG para iniciar este modulo como AltaCodigo() o DO AltaCodigo porque compilabamos "CLIPPER AltaCodigo /q/m/b" (por decirlo de alguna manera) los flags que utiliza xEdit para compilar con xHarbour es solo /n, por lo que tienes que modificar tu codigo en este sentido si AltaCodigo.prg tiene las primeras lineas de comando "sueltas" y desde ahi se hacen llamados a los demas procedures o functions (que pueden estar o no dentro del mismo PRG), entonces esas lineas "sueltas" agrupalas dentro de una funcion o procedimiento (agrega una primera linea a AltaCodigo.prg "FUNCTION AltaCodigo" y su respectuvo "RETURN NIL").

Intentalo, espero te sea de ayuda.

Exito!!!

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Voy por buen camino

Mensaje  byrpa el Vie Dic 05, 2008 5:06 pm

Luego de una ardua tarde, ya logre compilar el programa con 0 errores, pero 847 warnings, que son las variables no declaradas al inicio de cada procedimiento, ahora el problema primero es la pantalla que esta como a una resolucion no apropiada, ya que hay que desplazar la barra lateral para encontrar el programa, el segundo problema que me esta reconociendo como principal otro archivo que no lo es, es decir, el programa principal se llama menu.prg pero alfabeticamente hay otro llamado acta.prg, el cual es el que corre primero y logicamente me da error ya que hay ciertas variables publicas que las declaro en el menu.prg, en propiedades del proyecto esta bien asignado el menu.prg pero no se porque jala otro.

Gracias a todos por sus comentarios y respuestas.

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Resuelto lo segundo

Mensaje  byrpa el Vie Dic 05, 2008 5:22 pm

Bueno lo segundo lo resolvi asi, borre el archivo del proyecto, lo volvi a crear, y agregue el archivo menu.prg unicamente, automaticamente me lo agrego como principal, seguidamente agregue el resto y listo, compile y ya. Lo que estoy peleando es todavia la pantalla larga.

seguire probando.

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para resolver el tamaño la pantalla

Mensaje  Heztevan el Vie Dic 05, 2008 9:14 pm

Byron,

El detalle del programa principal lo puedes arreglar tambien editando el archivo creado por el proyecto, (miproyecto.xpj o .xdt) estos archivos estan en el directorio donde creaste tu proyecto. solo hay que ubicar el PRG con la MAIN() en la primera posicion (1=primero.prg) recompilas y listo.

Para el problema de scroll, agrega al inicio del programa la funcion SETMODE(25,80) o si no quieres modificar mas el codigo, modifica las propiedades de la ventana que abre windows con tu ejecutable (click derecho sobre la barra de titulo, propiedades, diseño, ancho=80, alto=25)

y listo..

Heztevan

Mensajes : 9
Fecha de inscripción : 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Estoy emocionado, ver mi primer programa convertido.

Mensaje  byrpa el Sáb Dic 06, 2008 11:40 pm

Gracias Esteban por toda tu ayuda.
Les quiero comentar que ya esta corriendo mi proyecto en xharbour, es verdaderamente emocionante, he tenido como todos problemas y desilusiones, pero al final ya esta, surgen muchas dudas talvez alguno de ustedes puede seguirme echandome una manita, resulta que quisiera quitar todos los warnings que me salen, que son mas que todo de variables no definidas al inicio del procedimiento o funcion, aunque ya he empezado la labor, hay algunas variables que no se como trabajarlas, por ejemplo si es una variable publica iniciada desde el main() me da error cuando la llamo en otra funcion, como que no la tengo declarada en la funcion que la llama, no se como hay que definirla en la funcion hija. Ademas quisiera saber si con xharbour en modo consola, podemos conectarnos hacia mysql que esta instalada en debian, hasta ahora tengo algunas aplicaciones que estan asi, usando samba como servidor de archivos. Pero ahora no se si seguir usando dbf normales o con mysql, o que me recomiendan. Ademas el tema de la impresion pero creo abrir otro hilo en donde corresponde, ademas estoy comprometido a subir paso a paso, la gran odisea que he tenido. Suerte a todos y mucha salud.

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Migrar de Clipper a xHarbour Modo Consola

Mensaje  mustafa el Sáb Ene 10, 2009 8:22 am

Hola a todos:
He visto este foro y es muy interesante
Empeze con summer 87 y dBfast (summer en modo grafico de 16 bits)
dBfast es muy bueno ya que programas en modo Windows con leguaje clipper summer, pero no se continuo
la aplicacion y solo se puede programar en 16 bits)
Mi pregunta es alguien en modo consola tiene alguna libreria y tutorial que nos diera apariencia grafica
con mouse las compilaciones con xHarbour en modo consola ?

Un saludo
M.López (España)

mustafa

Mensajes : 15
Fecha de inscripción : 18/12/2008

Ver perfil de usuario

Volver arriba Ir abajo

Compilar mas de un programa

Mensaje  rosy el Mar Nov 03, 2009 12:46 pm

Hola Admin, estoy intentando pasar mis programas Clipper a xHarbour y si bien ha pasado bastante tiempo desde que tu escribiste el ejemplo de como compilar un programa, me fue de bastante ayuda, ya que anteriormente habia intentado con xEdit, brmake, qac pero siempre tenia errores y nadie sabia orientarme o dar alguna idea de el porque salian estos errores. Ahora queria pedirte si pudieras colocar un ejemplo del como compilar varios programas poque imagino que el bat ya no puede ser igual.

Admin escribió:Primero que nada, quiero decirles que por mi programacion empezo por dbase III, Foxpro y luego clipper, el cual avance hasta la version 5.01, lo demas ya todos los sabemos, realmente el clipper lo daba por muerto, asi como se oye, aunque hay empresas que aun usan los sistemas que diseñe, muchas otras ya pasaron a VFP, algunas otras a Vbasic con SQL, pero muchas otras me piden que siga con los programitas clipper, el camino para llegar a harbour no me ha sido muy facil, ya que nadie te da exactamente que es lo que hay que hacer para pasar a plataforma harbour o xharbour, de lo poco que he investigado puedo decir que harbour es un lenguaje digamole asi mas estable pero menos robusto que xharbour, aunque para mis necesidades creo que los dos se adaptan, si no estoy mal los dos son de codigo abierto, es decir no hay que pagar nada por usarlos, pero xharbour tiene algunas adaptaciones extras las cuales si tienen un costo por investigacion y estar trabajando en ello.

Bueno me estoy alargando un poco, pero ahora vamos al grano, eso si todo en modo de consola. El paso inicial es bajarte el harbour o el xharbour, yo opte por el segundo que lo puedes encontrar en www.xharbour.org en la opcion de downloads encontraras Binaries y alli la plataforma que quieras usar, en mi caso es windows, por aparte vamos a usar "xHarbour Binaries for Borland C++ 5.5.1", por otro lado tenemos que bajar el Borland C++ 5.5.1 que en la misma pagina de www.xharbour.com opcion Download - Required Tool, se encuentra.

Bueno despues de ya tener instalados estos programas, que de hecho ya tienen su instalador, vamos a crear nuestro primer programita hola.prg, en Xp clic en inicio - ejecutar y nos vamos al modo de consola con teclear "cmd" y "Enter", podemos usar el edit del dos y tecleamos los siguiente,

Procedure main()
clear
@1,1 Say "Hola xharbour"
wait "Presione una tecla para continuar"
return

Guardamos y, vamos a compilar.

Gracias a Jorge Eduardo de unos de los grupos de Yahoo me paso este archivo .bat que esta de lujo.

pueden crearlo igual con edit y copian las lineas de abajo, hay que tener cuidado en unicamente darles los paths en donde se encuentran el xharbour y el borland, y listo, ademas dependiendo si le pusieran a su .bat algo asi como xcompile.bat, y su archivo se llama hola.prg, vamos a compilar asi > xcompile hola

y listo ya deberia estar generado el .exe

** copiar desde aqui para el .bat**

@ECHO OFF
CLS

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\xharbour
set bcdir=c:\borland\bcc55\bin

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bcc32 -M -c @b32.bc
:ENDCOMPILE

echo c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\hsx.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\Lang.lib + >> b32.bc
echo %hdir%\lib\macro.lib + >> b32.bc
echo %hdir%\lib\rdd.lib + >> b32.bc
echo %hdir%\lib\dbfntx.lib + >> b32.bc
echo %hdir%\lib\dbfcdx.lib + >> b32.bc
echo %hdir%\lib\common.lib + >> b32.bc
echo %hdir%\lib\libmisc.lib + >> b32.bc
echo %hdir%\lib\CodePage.lib + >> b32.bc
echo %hdir%\lib\DbfFpt.lib + >> b32.bc
echo %hdir%\lib\pcrepos.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\ace32.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib, >> b32.bc

ECHO *
ECHO Linking...
%bcdir%\ilink32 -Gn -Tpe -s @b32.bc

rem delete temporary files
rem @del %1.c

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
GOTO EXIT
ECHO

:LINKERROR
rem PAUSE * Linking errors *
GOTO EXIT

:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT

rosy

Mensajes : 19
Fecha de inscripción : 19/10/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Primer programa "Hola xHabour"

Mensaje  byrpa el Mar Nov 10, 2009 4:19 pm

Rosy con el xedit, puedes ir agregando los archivos prg que quieras, unicamente debes de poner al inicio de cada .prg el nombre del archivo o funcion, es decir el menu.prg debe de tener el procedure MAIN(), y por ejemplo hay una llamada a otro archivo llamado, claves.prg, al inicio de ese archivo debes de ponerle procedure CLAVES(), el xedit que puse en el video empezando desde cero, esta configurado para que este en el disco local C:, tu puedes configurarlo manualmente para que este en cualquier disco, pero debes de modificar a mano, el archivo .cfg que esta en el directorio, para llegar a eso, me costo un buen tiempo investigando, asi que decidi ponerlo todo listo en el disco C:.

Pedona que no haya contestado antes, pero he tenido demasiado trabajo, estare pendiente de las respuestas.

byrpa

Mensajes : 63
Fecha de inscripción : 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Re: Primer programa "Hola xHabour"

Mensaje  Contenido patrocinado Hoy a las 11:14 am


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.