Página 1 de 1

Como Gerar un .LIB com Summer 87?

Enviado: 17 Dez 2020 14:31
por aspepper
Boa tarde pessoal,

Já procurei em vários lugares. Mas a gente encontra pouco material para clipper. Mesmo baixando o livro do Antonio Geraldo da Rocha Vidal, sobre Clipper Summer 87, não há referências lá. Como eu gero o .LIB do código abaixo no Clipper Summer 87?

Eu compilei com > clipper USER200.PRG e depois > plink86 USER200 lib clipper, extend. Mas desta forma obtenho apenas o .EXE.

Código: Selecionar todos

procedure ab_arqca      
parameters arq
private aarq
aarq = .f.
do while ! net_use ('&arq', .f., 1)
    if ! aarq
        do mensa with 'Aguarde ... Sistema bloqueado !'
        aarq = .t.
    endif
    inkey (2)
enddo
if aarq
    do mens with 'Aguarde ... '
endif
return

function ab_arqc        
parameters arq
if ! net_use ('&arq', .f., 1)
    do mensa with 'Sistema bloqueado !'
    inkey (2)
    return .f.
else 
    return .t.
endif

function ab_arqe        
parameters arq
if ! net_use ('&arq', .t., 1)
    do mensa with 'Sistema bloqueado !'
    inkey (2)
    return .f.
else 
    return .t.
endif

procedure ab_arqea      
parameters arq
private aarq
aarq = .f.
do while ! net_use ('&arq', .t., 1)
    if ! aarq
        do mensa with 'Aguarde ... Sistema bloqueado !'
        aarq = .t.
    endif
    inkey (2)
enddo
if aarq
    do mens with 'Aguarde ... '
endif
return
    
procedure telanome      
parameters mensa
cor ('m')
if len (mensa) < 25
    @ 24, 52 say mensa + space (24 - len (mensa)) 
else 
    mensa_1 = 'Tamanho excedeu 24 carac'
    @ 24, 52 say mensa + space (24 - len (mensa)) 
endif
return

procedure mens          
parameters mensagem
cor ('m')
if len (mensagem) <= 51
    @ 24, 0 say mensagem + space (51 - len (mensagem)) 
else 
    mensa_1 = ''
    @ 24, 0 say mensagem + space (51 - len (mensagem)) 
endif
return

procedure mud_cor       
private cor__i1, cor__i2, cor__i3, cor__i4
cor__i1 = cor11
cor__i2 = cor21
cor__i3 = cor31
cor__i4 = cor41
do case
    case colori1 .and. cor_i = 'cor1'
        set color to &cor__i1/n,n/w,n
    case colori1 .and. cor_i = 'cor2'
        set color to &cor__i2/n,n/w,n
    case colori1 .and. cor_i = 'cor3'
        set color to &cor__i3/n,n/&cor__i3,n
    case colori1 .and. cor_i = 'cor4*'
        &cor__i4 = &cor__i4 + '*'
        set color to &cor__i4/n,n/&cor__i4,n
    case colori1 .and. cor_i = 'cor4'
        set color to &cor__i4/n,n/&cor__i4,n
    case cor_i = 'cor1' .or. cor_i = 'cor2'
        set color to w/n,n/w,n
    case cor_i = 'cor4*'
        set color to w*+/n,n/w+,n
    case cor_i = 'cor3' .or. cor_i = 'cor4'
        set color to w+/n,n/w+,n
endcase
return
    
function cor            
parameters parCor
parCor = upper (parCor)
do case
    case ! colori1 .and. parCor $ 'GD' .and. isolado1
        cor__i = 'w+/n,n/w,,,w+/n'
    case ! colori1 .and. parCor $ 'GD'
        cor__i = 'w+/n,w+/n,,,w+/n'
    case ! colori1 .and. parCor $ 'TLC'
        cor__i = 'w/n,w+/n,,,w+/n'
    case ! colori1 .and. parCor = 'T*'
        cor__i = 'w*/n,w+/n,,,w+/n'
    case ! colori1 .and. parCor $ 'AM'
        cor__i = 'n/w,w+/n,,,w+/n'
    case ! colori1 .and. parCor = 'W'
        cor__i = 'w/n,n/w,,,n/w'
    case parCor $ 'LC'
        cor__i = cor11 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'T'
        cor__i = cor21 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'T*'
        cor__i = cor21 + '*/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor $ 'GD' .and. isolado1
        cor__i = cor21 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor51
    case parCor $ 'GD'
        cor__i = cor31 + '/' + cor51 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'M'
        cor__i = cor71 + '/' + cor81 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor = 'A'
        cor__i = cor61 + '/' + cor81 + ',' + cor31 + '/' + cor41 + ',' + cor51 + ',,' + cor31 + '/' + cor41
    case parCor $ 'W'
        cor__i = cor31 + '/' + cor51 + ',' + cor31 + '/' + cor81 + ',' + cor51 + ',,' + cor31 + '/' + cor41
endcase
set color to &cor__i
return .t.

procedure mensa         
parameters p_mensagem
set cursor off
tone (2500, 10)
cor ('a')
if len (p_mensagem) <= 51
    @ 24, 0 say p_mensagem + space (51 - len (p_mensagem)) 
else 
    p_mensagem = ''
    @ 24, 0 say p_mensagem + space (51 - len (p_mensagem)) 
endif
tone (2500, 2)
return

procedure mensagem      
private mens_agem, c_or1, c_or2
parameters mens_agem, c_or1, c_or2
cor_i = c_or1
do mud_cor
@ 24, 0 say mens_agem + space (75 - len (mens_agem)) 
cor_i = 'cor2'
do mud_cor
@ 24, 79 say '-' 
cor_i = c_or2
do mud_cor
return

procedure confimp       
keyboard ''
do mens with 'Impressora/Formulario Ok - Imprimir  (S/N) ?'
cor ('w')
do while .t.
    set cursor on
    @ 24, 45 get confimp picture '!'
    read
    clear gets 
    set cursor off
    do case
        case lastkey () = 27 .or. confimp = 'N'
            confimp = 'N'
            return
        case ! confimp $ 'SN' .or. lastkey () != 13
            tone (70, 1)
            loop
    endcase
    exit
enddo
if ! espoim1 .and. confimp = 'S'
    do mensa with 'Esta��o com impress�o n�o autorizada ! Tecle algo'
    inkey (0)
    confimp = 'N'
endif
return
    
function strzero        
parameters cl_num, cl_len, cl_dec
private cl_str
do case
    case pcount () = 3
        cl_str = str (cl_num, cl_len, cl_dec)
    case pcount () = 2
        cl_str = str (cl_num, cl_len)
    otherwise
        cl_str = str (cl_num)
endcase
if '-' $ cl_str
    return '-' + replicate ('0', len (cl_str) - len (ltrim (cl_str))) + substr (cl_str, at ('-', cl_str) + 1)
else 
    return replicate ('0', len (cl_str) - len (ltrim (cl_str))) + ltrim (cl_str)
endif
    
function net_use        
parameters file, ex_use, wait
private forever
forever = wait = 0
do while forever .or. wait > 0
    if ex_use
        use &file exclusive
    else 
        use &file
    endif
    if ! neterr ()
        return .t.
    endif
    inkey (1)
    wait = wait - 1
enddo
return .f.
function net_use        
parameters file, ex_use, wait
private forever
forever = wait = 0
do while forever .or. wait > 0
    if ex_use
        use &file exclusive
    else 
        use &file
    endif
    if ! neterr ()
        return .t.
    endif
    inkey (1)
    wait = wait - 1
enddo
return .f.
Alguém já fez?

Tem alguma coisa que preciso declarar no .PRG? Ou é algum parâmetro no > clipper, ou > plink86 ?

Desde já agradeço.

Alex Pimenta

Como Gerar un .LIB com Summer 87?

Enviado: 17 Dez 2020 14:53
por Softwhouse
Pouco lembro sobre isso, mas na época era usado um programa chamado lib.exe ou libra.exe. Tinha que compilar a função e e adicionar o .obj na lib. Também dava para extrair o arquivo da lib. Lamentável que a seção downloads foi retirada do site, se não me engano tinha esses programas lá.

Como Gerar un .LIB com Summer 87?

Enviado: 17 Dez 2020 15:33
por JoséQuintas
Continua do mesmo jeito até hoje, mas não sei se os utilitários atuais servem.
Tinha o LIB.EXE da Microsoft, ou algum equivalente
Digita LIB e ele vai perguntando, depois só acrescentar/remover usando +/- e indicando o .OBJ
O arquivo de mapa é inútil, pelo menos pra mim, nem se preocupe com ele, se por acaso criar o .MAP pode apagar.

Se quiser compilar com Harbour....

Num primeiro momento, o que me lembro, é que no summer podia escrever replace a with b c with d, mas no Harbour/Clipper 5.1 é obrigatório colocar vírgula entre os campos.

Como Gerar un .LIB com Summer 87?

Enviado: 17 Dez 2020 15:58
por alxsts
Olá!

Certamente este tópico está relacionado a este outro.

As perguntas relativas a este tópico já foram respondidas acima pelos colegas. Realmente naquele tempo precisávamos de um utilitário externo (Lib.Exe) como já mencionado. Uma lib é um conjunto de arquivos .OBJ encapsulados em um único arquivo .LIB. Atualmente, com [x]Harbour pode-se criar uma lib diretamente. No Harbour, basta acrescentar -hblib nos parâmetros de compilação do HbMk2.

Em relação ao outro tópico, mencionado acima, perceba que você não precisa mais desta lib pois já tem os fontes nela contidos. Veja lá os comentários que fiz.

Como Gerar un .LIB com Summer 87?

Enviado: 17 Dez 2020 16:59
por aspepper
Obrigado a todos.

Já consegui compilar e resolver. Agora é convercer o cliente a modernizar este sistema.

Vou baixar o harbor. Vi que consigo usar o Visual Studio Code com o Harbur. Parece bem interessante