Página 1 de 2
carregar bibliotecas....
Enviado: 01 Out 2007 11:59
por Craudião
bom dia...me deem uma força... preciso usar uma função, e não consigo carregar a uma referida biblioteca... qual o procedimento para carrega-la? ja procurei e tentei de varios modos mas não consegui....
obrigado
Enviado: 01 Out 2007 12:20
por sygecom
vc usa o Blinker ou Rtlink ?
Enviado: 01 Out 2007 12:20
por Maligno
Quando você faz referência a uma função no seu programa, o compilador marca esta chamada como uma referência não resolvida. O Linker, por sua vez, ao encontrar essa pendência, vai procurar nas LIBs que lhe forem informadas. Agora, resta saber se você fez uma referência direta ou indireta a essa função. Se for direta e a LIB não for informada para o linker, você terá o erro chamado "unresolved external". Se a referência for indireta (por meio de uma string - numa chave de índice, por exemplo), você precisará "dizer" ao compilador para incluir esse objeto. Para fazer isso, deve-se usar o comando REQUEST (veja o NG do Clipper).
Se quiser, poste um pedaço (pequeno) do seu programa onde essa função é utilizada, pra podermos avaliar melhor.
No demais, bem-vindo ao fórum.

Enviado: 01 Out 2007 12:24
por Maligno
vc usa o Blinker ou Rtlink ?
O linker, neste caso, não faz a menor diferença.

Enviado: 01 Out 2007 13:03
por sygecom
Maligno escreveu:vc usa o Blinker ou Rtlink ?
O linker, neste caso, não faz a menor diferença.

Pelo o que eu entendi , ele tem duvida de como usar a LIB , talvez não saiba linkar ela no Script dele...veremos...talvez eu esteja errado, ou vc foi alem da imaginação.....
Enviado: 01 Out 2007 14:09
por Craudião
realmente é isso.... não consigo linkar ela no script.... no compilar ja aparece o erro.... estou usando uma função para renomear varios arquivos de uma só vez, só q ele tem mais de 8 caracteres... função LF_FRENAME da lib LFN.....ñ sei se consegui ser claro
Enviado: 01 Out 2007 15:15
por sygecom
vc usa o Blinker ou Rtlink ?
Post como vc esta fazendo para linkar no seu script.
Enviado: 01 Out 2007 15:30
por Craudião
peguei algum procedimentos e tentei executar mas não deu certo... não quero postar algo errado... me passe algumas dicas q eu coloco em pratica aqui.... em suma, quero colocar a função dessa nova biblioteca em uso no meu script.
Enviado: 01 Out 2007 15:31
por Maligno
ou vc foi alem da imaginação.....
Informar uma LIB nesses dois linkers não faz diferença. A sintaxe é a mesma para informar uma biblioteca. Se ele compilar com:
blinker fi teste lib ct52,lfn
OU
rtlink fi teste lib ct52,lfn
OU
blinker @teste.lnk
OU
rtlink @teste.lnk
COM teste.lnk sendo igual a:
FILE teste
LIB ct52p
NOS DOIS linkers dará no mesmo. Por isso, eu repito: o linker não faz diferença. Isso não é da minha imaginação.
Enviado: 01 Out 2007 15:33
por Maligno
não quero postar algo errado... me passe algumas dicas q eu coloco em pratica aqui...
Se você não disser como está fazendo, vai ficar difícil adivinhar a melhor forma de ajudá-lo. Poste seu script ou linha de comando.
Enviado: 01 Out 2007 16:07
por Craudião
use ren
index on codigo to icod
go top
a=0
b=0
clear
do while .not. eof()
cod:=rtrim(codigo)+".jpg"
bar:=rtrim(barras)+".jpg"
if bar=" "
skip
loop
endif
if !file("&bar..jpg")
lf_frename("&bar", "&cod")
@ 10,10 say "modificou " + "&bar" + ".jpg " + "para " + "&cod" + ".jpg " + str(a)
a=a+1
else
@ 12,10 Say "Arquivo nao existe" + str(b)
b=b+1
endif
skip
if eof()
exit
endif
loop
enddo
use
Enviado: 01 Out 2007 16:11
por Maligno
Não. A nossa dúvida é quanto a forma de você compilar. Não é sobre o seu código, já que o erro é de link-time.
Enviado: 01 Out 2007 16:46
por Craudião
pessoal ...me desculpe a ignorancia... ja fiz alguns programas , mas sempre com a mesma biblioteca default do clipper... hj faço somente algumas rotininhas pra melhorar a performance do meu serviço... então , nunca usei outra biblioteca do clipper...simplesmente faço o prg e compilo com "cl <nome do programa>" ... por isso quero a ajuda para poder usar as outras funções disponiveis das outras LIbs.... não sei nem por onde começar pra usar esse outros recursos.... mais uma vez desculpe a minha ignorancia....
Enviado: 01 Out 2007 16:54
por Maligno
Ah, então agora tá explicado.
Seguinte: se você ler o tal CL.BAT, vai ver que ele chama o RTLink com apenas um comando FILE. É algo bem simples e nem dá pra usar para algo mais elaborado.
Então, supondo que você continua usando o RTLink, faça um arquivo BAT próprio. Um exemplo simples:
CLIPPER FONTE /<switches>
RTLINK FILE FONTE1,FONTE2,FONTE3,... LIB SUA_LIB1,SUA_LIB2
Onde está <switches> você deve trocar pelos switches que precisa usar no compilador. Se executar CLIPPER sem argumentos, ele te dará uma lista dos switches disponíves. Use o NG pra estudar cada um deles, pra saber pra quê eles servem.
No RTLink são basicamente duas listas, como você pode ver. A primeira é a lista dos seus arquivos PRG (não precisa colocar a extensão). A segunda é a lista de bibliotecas (também não precisa colocar a extensão).
De forma bem simplificada é isso. Mas há ma exceção. Caso queira incluir o debugger CLD, você precisa inserir o swith /b no clipper e informar a biblioteca CLD.LIB (com a extensão) na lista relacionada a FILE. Não entra como LIB.
Faça algumas experiências, testes, etc. até pegar o jeito da coisa. Mas não se esqueça de LER o help do Clipper e do RTLink. Isso evita muita dor-de-cabeça.

Enviado: 01 Out 2007 17:39
por Craudião
deu certinho.... mas na execução do programa ele da o erro "undefined symbol aftyer library search: ft_int86 ft_isbiton clipper520.... lfn.lib... será q é a versão do clipper? tenho aqui a 5.01.... alguem algum link da 5.3 pra me passar?