Página 1 de 2

GPF error

Enviado: 29 Dez 2007 18:12
por Adalberto
Trabalho com Clipper 5.2 y Blinker 6.0

Desejo mudar de NTX a CDX mais quando escrevo estes comandos

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

Compila e Linkedita bem mais ao tempo de rodar o app me da erro de GPF e indica que o active host e DPMI

Grato pela ajuda

FELIZ ANO NOVO PARA TODOS.

Enviado: 29 Dez 2007 21:53
por alaminojunior
Por acaso o nobre colega usa algum script para a linkedição do programa ? Caso sim, poste aqui no fórum para apreciação.
Este seria o primeiro caminho, visto que as possibilidades são muitas, inclusive hardware defeituoso.

Enviado: 29 Dez 2007 23:03
por sygecom
Tche Adalberto, apesar de eu já te visto aqui no forum que tem gente que usa DBFCDX com o CLIPPER 5.2 , faça o teste usando com o CLIPPER 5.3 e de uma olhada no link abaixo e verefique se vc esta linka as LIB corretas:
https://pctoledo.org/forum/viewto ... highlight=

Abraços
Leonardo Machado

GPF error

Enviado: 30 Dez 2007 18:05
por Adalberto
Meu programa principal e muito grande, tudo bom, mais quando aumento a linhas:

Código: Selecionar todos

REQUEST DBFCDX 
RDDSETDEFAULT("DBFCDX") 
DBSETDRIVER("DBFCDX")]
Ele da o erro de GPF, quito essas linhas de comando e tudo volta a normalidade. Agora eu peguei um pouco do prg principal, esse aí:

Código: Selecionar todos

LOCAL aTabla    , cTxt          , cComando
cTitCtaCte      := cCtaCte      := cCtaIngreso  := ''
cCtaGasto       := cCtaCosto    := nFilaInf     := ''
nColumIzq       := nColumDch    := ''
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
Ol_AutoYield( .T. )
CLS
WinFullScr()
//
? 'ATE  AQUI CHEGA'
WAIT
RETURN NIL
Compilo:

CLIPPER Prog

Linkedito com o mesmo script que faço a linkediçao do programa principal (o grande).

Código: Selecionar todos

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 Rato.EXE
WORKFILE D:\ENIN.PRG\ENINSOFT\CONTAB\TMP\Temporal.TMP
//
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\Rato.Obj
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\WFullScr.Obj
//
LIB C:\Enin\Blinker\BLXCLP52
LIB C:\Enin\Blinker\BLXRATEX
LIB C:\Enin\Blinker\DBFCDX
LIB C:\Enin\Blinker\Lfn
LIB C:\Enin\Blinker\CLIPPER
LIB C:\Enin\Blinker\EXTEND
LIB C:\Enin\Blinker\TERMINAL
LIB C:\Enin\Blinker\OsLib
LIB C:\Enin\Blinker\CPMI
LIB C:\Enin\Blinker\Nanfor
/NOE;
E roda sem problema

Obrigado por ajudar me.

Enviado: 30 Dez 2007 21:16
por jairfab
Utilize o Blinker 7 e Clipper 5.3 provavelmente resolve este problemas, nao esqueca de criar novos indices....

Enviado: 31 Dez 2007 10:08
por alaminojunior
Dê uma enxugada.
Blinker Incremental Off
Blinker Exec Clipper //F:150, E:1024, R:128
Blinker Exec Comp 1
Blinker Exec Exte
Blinker Memo Pack 5
Blinker Incr Pad 256
@Cl520Max
OUTPUT Rato.EXE
WORKFILE D:\ENIN.PRG\ENINSOFT\CONTAB\TMP\Temporal.TMP
//
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\Rato.Obj
FILE D:\ENIN.PRG\ENINSOFT\CONTAB\WFullScr.Obj
//
LIB C:\Enin\Blinker\BLXCLP52
LIB C:\Enin\Blinker\BLXRATEX
LIB C:\Enin\Blinker\DBFCDX
LIB C:\Enin\Blinker\Lfn
LIB C:\Enin\Blinker\CLIPPER
LIB C:\Enin\Blinker\EXTEND
LIB C:\Enin\Blinker\TERMINAL
LIB C:\Enin\Blinker\OsLib
LIB C:\Enin\Blinker\CPMI
LIB C:\Enin\Blinker\Nanfor
/NOE;

Enviado: 31 Dez 2007 10:55
por Eolo
Adalberto,

Se você só usa o CDX, a linha DBSETDRIVER("DBFCDX") está a mais, sem necessidade (essa função só é necessária quando vc precisa alterar, durante a execução do programa, o uso do CDX e NTX, por ex).

Bastam, então, as linhas
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")


Pergunta: você já tentou descobrir em qual linha o programa está gerando o GPF? Quem sabe você poderia ir mudando o WAIT de posição... Ou, melhor ainda, usar o CLD (debugador do Clipper) e ir executando linha a linha...

Error base/1004

Enviado: 01 Jan 2008 13:46
por Adalberto
Bom dia de Deus a todos.

Por favor, não esqueçam que eu tenho dito que meu programa principal e muito longo por isso não postei ele, mais a coisa e que pegando um pedaço de esse programa: compila. linkedita e roda beleza, (o programa pequeno), então estou ficando doido procurando saber porque o programa principal não roda, da erro de GPF, não chega nem a mostrar a tela de menu, nada, e só quitando as linhas de comando:

Código: Selecionar todos

REQUEST DBFCDX 
RDDSETDEFAULT("DBFCDX") 
DBSETDRIVER("DBFCDX")
O programa principal pode se compilar, linkeditar e roda de maravilha.

Fico muito grato com todos por fornecer ajuda.

Enviado: 01 Jan 2008 16:11
por Eolo
Cara, se eu fosse você, primeiro eu resumia o seu script a umas poucas linhas... Deixe o mínimo necessário e depois vá agregando comando a comando, e somente QUANDO PRECISO.

Quem sabe não tem algum comando que tá criando o problema... Dei uma olhada no help do Blinker7 (vc usa o 6, certo?) e veja o que achei:

WORKFILE D:\ENIN.PRG\ENINSOFT\CONTAB\TMP\Temporal.TMP
By default, Blinker will use either XMS (2.0 or higher) or EMS (3.2 or higher) memory in preference to a workfile, when available...

Então, vc está forçando o uso de um arquivo sem necessidade...

BLINKER LINK VERSION 3.0 [você usa a versão 6!]
This command is used to ensure av minimum version of Blinker to process the link script...

Não tá servindo pra nada...

BLINKER LINK XMS ON
This command is used to control whether XMS memory is used at link time by the virtual memory system within Blinker. There is usually no reason to use this command unless a conflict with some other software is suspected...

Pra que vc incluiu este comando?

BLINKER LINK EMS ON
(idem anterior)

BLINKER CACHE EMS 40,50%
This command specifies the amount of EMS (LIM version 4.0 and higher) memory to be used for the overlay cache...
BLINKER CACHE XMS 40,50%
This command specifies the amount of XMS (version 2.0 and higher) memory to be used for the overlay cache...

Você incluiu esses 2 últimos comandos porque enfrentou algum problema de memória?

BLINKER HOST DPMI ON
BLINKER HOST VCPI ON
BLINKER HOST XMS ON

Estes, pode simplesmente deletar. O DEFAULT do Blinker já é ON para todos.

BLINKER EXECUTABLE EXTENDED
This command specifies that Blinker should produce a protected mode DOS extended executable. The executable generated will only run on an 80286 processor or above, with a minimum of 1 Mb of available extended memory. If BLINKER EXECUTABLE EXTENDED is specified then ALL link
script commands to do with overlaying are ignored, and a non-overlaid program is always created...

Esta linha está DUPLICADA. Você sabe que ela representa que o seu aplicativo vai rodar em modo protegido e não em modo real, certo?

BLINKER MESSAGE WINK
Pura perfumaria, não serve pra nada. Pode deletar...

BLINKER OVERLAY OPSIZE 50
This command is used to set the operating size of the overlay pool at run time in Kb. It can be set to any value between 12 and 128. The default operating size is 40Kb...

Como você calculou o número 50 e por que?

BLINKER EXTMEM BLOCK 512
O default é 256. Você usa 512 porque enfrentou algum problema?

BLINKER PROCEDURE DEPTH 60
This command is provided as a convenience to CA-Clipper programmers to allow the setting of the program stack based on the maximum procedure nesting depth which will occur in the application at runtime. This depth is the number of procedure calls that are executed before a procedure return...

O default é 50 - o que já é MUITO. Por que vc aumentou pra 60?

BLINKER Overlay PageFrame ON
Dá uma olhada no HELP do Blinker... É um tópico meio grande. Eles dizem que o default é OFF e que:
. Please read this section fully before using this command...
. WARNING: When using this command, your program MUST NOT use ANY functions which access expanded memory via the EMS pageframe...


Bem, voltando ao começo: em meus sistemas, eu uso somente
blinker incremental off
blinker exe ext
search \blinker\lib\blxclp52


Tente resumir o seu script a isso. Aí, vc vai incluindo comandos quando necessário, baseado nos erros que o próprio Blinker apontar. Exemplo? No caso do comando BLINKER PROCEDURE DEPTH 60. Se o default 50 não for suficiente, o Blinker vai reclamar na hora da linkedição, "pedindo" pra aumentar...

GPF error

Enviado: 01 Jan 2008 19:11
por Adalberto
Caro Eolo,

Muito obrigado pela sua resposta, detalhada e didática.

Resumi o script segundo suas indicações e ainda assim o erro segue; o curioso e que incluso com o script anterior, com linhas desnecessárias, duplicadas, etc. o sistema completo, longo, compila, linkedita y roda beleza, e só aumentar essas três linhas e o erro de GPF aparece. Deleto essas linhas e todo voltam a ser uma maravilha. Tanto assim que eu já instalei o sistema em outras pc´s sem problemas.

O fato e que tirando um pedaço do programa longo, com as três linhas para CDX o erro não aparece nem com o script anterior nem com o script que você, com tanta gentileza propõe.

Desde faz um ano que estou usando o blinker com o script “errado” em diferentes Pc´s, com índices NTX, sem problemas maiores, foi agora que desejei mudar para o CDX e apenas votei essas linhas no inicio, compilei, linkeditei e quando executei o sistema só para fazer uma proba de esses comandos deu o erro.

Posso seguir como antes, com NTX, mais no e bom ficar com a duvida, não e?

Agradeço a ajuda e colaboração de todos vocês.

Enviado: 02 Jan 2008 12:35
por Eolo
Adalberto, desculpe se pareci 'rude' em meu post, não tive a intenção. O que eu quis dizer é que, se um comando não é necessário, para que usá-lo? Será que um comando a mais, indevido, não poderia estar causando o problema?

Será que a sua LIB CDX poderia estar corrompida?

GPF error

Enviado: 03 Jan 2008 02:05
por Adalberto
Eolo,

Mais uma vez, obrigado pela sua atenção.

Não foi “rude”, foi muito gentil al buscar como me ajudar.

Se for a lib CDX corrompida como e que linkedita blz quando o prg e pequeno?

A verdade e que não estou entendendo como pode linkeditar e rodar benzinho quando o prg e pequeno; se for longo, da o erro.

As informações suas são tomadas em conta e testadas.

Por favor. siga me ajudando.

Enviado: 03 Jan 2008 08:59
por acelconsultoria
Adalberto...

Não li todo o post detalhadamente, mas passei um problema parecido com o seu...

Quando eu usava o NTX, com clipper 5.2 e RTLINK, senti a necessidade de mudar para CDX... mas aí, com isso, tive tbem que passar a usar Clipper 5.3b + BLINKER 7.0. Aí, o erro de GPF foi resolvido.

Atente para a versão 5.3b, porque a 5.3a tem uma porrada de bugs.

Enviado: 03 Jan 2008 08:59
por Eolo
Bem, já vi acontecer algo semelhante: um colega tinha uma LIB que era de uma versão diferente do Clipper instalado e dava erro na execução do programa dele. Ele trocou a LIB e o problema sumiu.

Então, não custa tentar, certo?

Se vc quiser, informe o seu e-mail (o meu está no perfil) que eu lhe mando a DBFCDX.LIB do Clipper52e.

Enviado: 05 Jan 2008 15:41
por Maligno
Adalberto escreveu:Compila e Linkedita bem mais ao tempo de rodar o app me da erro
Na sua situação eu escolheria utilizar a biblioteca SIX, que funciona maravilhosamente bem com o Clipper 5.2e. Caso queira fazer alguns testes, acesse este link e baixe a LIB. São dois arquivos. Rode o demo, consulte os fontes e, na dúvida, poste outra mensagem.