Clipper/FiveWin - Error de memoria con !&cFILE

   
Vista:

Error de memoria con !&cFILE

Publicado por Balterra (38 intervenciones) el 22/10/2007 18:35:41
Hola a todos,

Primero dar las gracias a Alalberto apor su solucion para ver "fichero PDF's".

Ahora me surge otro problema que paso a detallar.

trato de ejecutar un programa externo que une 2 PDF's mero me da error "Programa demasiado extenso para colocarlo en memoria"

¿que puedo hacer?

Compilo con RTLINK ver:3.13

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de memoria con !&cFILE

Publicado por Adalberto (213 intervenciones) el 22/10/2007 20:22:29
Hola Balterra,

¿Gracias has dicho? , no tienes de qué agradecer, estamos para ayudarnos y lo que puedo lo hago, y con mucho gusto.

Clipper trabaja en modo real, utiliza hasta 640 Kb, de RAM, para que tu sistema funcione mejor debes enlazarlo con BLinker en modo protegido, así podrá tu sistema gerenciar hasta 16 Mb de RAM.

Además, no se si ya lo utilizas, pero es bueno que en las primeras líneas del programa proncipal insertes la funcion Ol_AutoYield(), para liberar el uso de CPU, la función que cito es de la OsLib.Lib, la que debes enlazar junto con la librería CPMI y las otras librerias, más o menos así:

BLinker Fi Obj1, Obj2, ....Objn Li [librerías ] , OsLib , CPMI

Claro que es mejor si utilizar un archivo .LNk, algo como esto:

BLINKER EXECUTABLE COMPRESS 1
BLINKER INCREMENTAL OFF
BLINKER LINK VERSION 3.0
BLINKER LINK XMS ON
BLINKER LINK EMS ON
BLINKER CACHE EMS 40,50%
BLINKER CACHE XMS 40,50%
BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON
BLINKER EXECUTABLE EXTENDED
BLINKER MESSAGE WINK
BLINKER OVERLAY OPSIZE 50
BLINKER EXTMEM BLOCK 512
BLINKER PROCEDURE DEPTH 60
BLINKER EXECUTABLE EXTENDED
BLINKER Overlay PageFrame ON
nobell
OUTPUT TuEjecutable.Exe
WORKFILE temporal.TMP
//
FILE Compilar.Obj
FILE Comp_Lib.Obj
FILE GetSys.Obj
FILE Los dem s objetos
//
// Librerias de BLinker
LIB C:\BLINKER\LIB\BLXCLP52
LIB C:\BLINKER\LIB\BLXRATEX
// en estas dos lineas tambien puedes incluir las rutas, como en las
// líneas anteriores
LIB CLIPPER , EXTEND , TERMINAL // Lib. de Clipper
LIB OsLib , Cpmi // Librerias de Terceros
/NOE;

Espero que te vaya bien.

Saludos desde Santa Cruz de la Sierra - Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de memoria con !&cFILE

Publicado por Smith (11 intervenciones) el 23/10/2007 00:53:00
Y por qué no compilas con Alaska Xbase++ ? te combierte tu programa a 32 bits y te evitas ese tipo de errores. Además es muy fácil la transición del código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de memoria con !&cFILE

Publicado por Adalberto (213 intervenciones) el 23/10/2007 02:49:19
Hola Smith,

Es muy buena idea hacer como dices, puedes indicar la manera de conseguir xBase++ de Alaska?

Gracias!

Saludos desde Santa Cruz de la Sierra - Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de memoria con !&cFILE

Publicado por Balterra (38 intervenciones) el 23/10/2007 11:10:23
consigo compilar con la version 3.20 del Blinker quitandole la linea (BLINKER EXECUTABLE COMPRESS 1 ), pero cuando ejecuto el programa me dice:

BLX286 : 1313 : error de excepción 0D : violación de protección general, código
= 0000h

El manipulador activo es DPMI (v3.20 iP? 15360 Kb)

Reg Value Limit Base Flags Segment Module File
CS 0247 299B 01D1B70C FB00 0A PROGPRIN R:\....FUE\PROGPRIN.EXE
DS 0000 ****
ES 039F B3FF 01D1030C F300 ****
SS 02A7 FFFF 01C63534 F300 16 PROGPRIN R:\....FUE\PROGPRIN.EXE

[Byte de código CS] 1E 33 C0 8E D8 B9 FE 00 [IP] F3 A5 A1 84 00 8B 16 86 00 2E

[Registros] AX=0000 BX=0200 CX=00FE DX=039F CS:IP=0247:22EC
SI=0004 DI=B112 BP=6E16 SP=6E02
FL=3246 NV UP EI NT PL ZR NA PE NC

[Valor del Stack SS] F793 0257 0000 039F 0200 B10E 0000 039F 6E16 22D0 0247
[SP] 02A7 518E 513E 4268 0257 0000 518E 513E 518E 518E 6E1E

[Marco del Stack SS] 0247 02A7 518E 513E 4268 0257 0000 518E 513E 518E 518E
[BP] 6E1E 37D4 0257 0000 6E28 4383 0257 0000 0000 0000 5808


Que puedo hacer?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de memoria con !&cFILE

Publicado por Balterra (38 intervenciones) el 23/10/2007 10:58:02
Varias Dudas.

Tengo la version 3.20 de Blinker

y partes no se las tragar

He probado la version 5.10 demo

y si se lo traga salvo

LIB BLXRATEX

esto:
//FI Compilar.Obj
//FI Comp_Lib.Obj
//FI GetSys.Obj

Lo he suprimido por mis .obj

y la libreria CPMI no la tengo, que hace?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de memoria con !&cFILE

Publicado por Adalberto (213 intervenciones) el 23/10/2007 22:47:57
Hola Balterra.

El fallo de protección general se debe a estas enlazando una o más librerías de terceros que NO han sido desarrolladas para modo protegido, debe cambiarlas por sus equivalentes para modo protegido.

Que hayas suprimido esas tres líneas está muy bien, son unos objetos que utilizo y que olvidé borrar en el ejemplo que escribí.

La librería OsLib hace referancia a funciones de la librerñia Cpmi, se complementan.

He enviado la Lib Cpmi a tu correo.

:)

Saludos desde Santa Cruz de la Sierra - Bolivia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de memoria con !&cFILE

Publicado por balterra (38 intervenciones) el 24/10/2007 09:27:54
Creo que el problema lo tengo en que gasto PROCEDURE .

No obstante me cree un programilla solo con esas funciones y me da el mismo error. "Programa demasiado extenso para cargar en memoria" creo que no tiene solucion.

CLEAR SCREEN
OL_AutoYield( .T. )
SET EPOCH TO 1995
DO WHILE .T.
NOMBRE:=DIRECTORY("\GESTAGEN.FUE\EXPE\")
UNEPDF:="java -jar c:\Archiv~1\pdfsam\lib\pdfsam-console-0.7.3.jar -f \gestagen.fue\pdfs\7-099999.PDF -f \gestagen.fue\expe\7-099999.pdf -o \gestagen.fue\unido.pdf concat"
!&UNEPDF
WAIT "1"
ENDDO

Compilo de la siguiente manera:

CLIPPER UNIRPDFS /B

COPY *.OBJ \GESTAGEN.FUE\OBJ
DEL *.OBJ

blinker @cu.lnk

El contenido del LNK es:

BLINKER EXECUTABLE COMPRESS 1
BLINKER INCREMENTAL OFF
BLINKER LINK VERSION 3.0
BLINKER LINK XMS ON
BLINKER LINK EMS ON
BLINKER CACHE EMS 40,50%
BLINKER CACHE XMS 40,50%
BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON
BLINKER EXECUTABLE EXTENDED
BLINKER MESSAGE WINK
BLINKER OVERLAY OPSIZE 50
BLINKER EXTMEM BLOCK 512
BLINKER PROCEDURE DEPTH 60
BLINKER EXECUTABLE EXTENDED
BLINKER Overlay PageFrame ON
nobell
OUTPUT UnirPdfs.Exe
WORKFILE temporal.TMP

FI unirpdfs

LIB \clipp503\LIB\BLXCLP53
//LIB \clipp503\LIB\BLXRATEX
LIB NT250,OSLIB
LIB \CLIPP503\lib\Cpmi
LIB \clipp503\lib\CLIPPER , EXTEND , TERMINAL // Lib. de Clipper
/NOE;

Mi version del Clipper es 5.03 y el blinker 6.0
te paso por e-mail el programa externo por si quieres probarlo.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar