Página 1 de 1

Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 16:56
por rangelssilva
Boa tArde, Caros colegas...

SOu programador clipper a alguns anos, e ultimamente comecei a utilizar diversas LIbs.... Ate ai tudo bem.... Gostaria de saber se posso utilizar diferentes libs no mesmo sistema como Por exemplo a Orbis e a Ferns graphic juntas... Tem algum problema de incompatibilidade entras as libs acima?? E entre outras...

Isso limitaria muito a criacao de um sistema, ja que as mesmas tem o intuito de auxiliar , a por isso poderia usar uma funcao de uma e outra da outra e assim sucessivamente.... :-O

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 19:06
por alaminojunior
Para ser sincero, eu não posso responder a sua pergunta pois não me lembro para quê serve a lib Orbis. Mas diante de possíveis incompatibilidades entre as lib´s que você possa vir a utilizar, e também levando em consideração que: dependendo da área para a qual você programa, me sinto sim na "obrigação" de lhe indicar que pense na possibilidade de migrar esta sua aplicação para xHarbour ou Harbour. Pois tem sido o caminho à seguir para a maioria dos programadores Clipper, devido aos recursos oferecidos.
Peço desculpas aos moderadores e ao colega em questão, mas enfim, que o mesmo pondere à respeito.

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 19:39
por alxsts
Olá amigos!

Caro Rangel,

toda vez que voce digita um programa escrito em Clipper, o salva e o compila, é gerado um arquivo com o mesmo nome do arquivo .PRG, mas com a extensão .OBJ. Num sistema escrito em Clipper, isso ocorre uma vez para cada arquivo .PRG que voce compila. Para gerar o executável, voce submete uma lista de todos os seus arquivos .OBJ gerados ao programa link-editor escolhido (RTLink, Exospace, Blinker...). Este programa link-editor se encarrega de resolver todas as referencias e endereçamentos internos de memória e gerar um arquivo executável.

Como descrito acima, voce poderá ter que gerar milhares de programas, que após compilados se tornarão, cada um deles, um arquivo .OBJ. Uma tecnica de programação muito boa é reutilizar código. Assim, voce pode criar rotinas comuns, gerar os respectivos. OBJ e empacotá-los, de acordo com a finalidade de cada um, em arquivos-biblioteca, com a extensão .LIB. Existem programas que fazem esta tarefa. Um dos mais antigos e conhecidos é o LIB.EXE, que voce pode encontrar nesse forum, em https://pctoledo.org/download/cop ... t&deonde=3.

Depois que voce definir as suas bibliotecas, é só usar, através de seu programa link-editor. Creio que com relação a conflitos, pelo que conheco, voce não poderá ter rotinas com assinaturas ambíguas (mesmos nomes) e combinar uma biblioteca de 16 bits com outra de 32 bits. Fora isso, tudo bem.

Um exemplo de tudo isso, é o próprio Clipper. Numa instalação padrão do mesmo, na pasta C:\clipper5\LIB, voce encontrará vários arquivos com extensão .LIB. Cada um deles, contem um grupo de rotinas padrão da linguagem: Clipper.Lib, o núcleo; Extend.Lib, extensões do núcleo; DbfNtx.Lib, gerenciamento do RDD DBFNTX; CLD.Lib, o debugger, e assim por diante.

Quando voce for gerar um executável, através de seu programa link-editor, poderá unir várias Libs, do próprio Clipper e/ou de terceiros (como CT.LIB, Nanfor.LIB, etc), ressalvadas as condições acima (ter rotinas com assinaturas ambíguas (mesmos nomes) e combinar uma biblioteca de 16 bits com outra de 32 bits.).

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 19:50
por alaminojunior
alxsts escreveu: ressalvadas as condições acima (ter rotinas com assinaturas ambíguas (mesmos nomes) e combinar uma biblioteca de 16 bits com outra de 32 bits.).
Além de bibliotecas para modo real ou protegido.

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 20:10
por alxsts
Bem lembrado Alamino!

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 20:44
por alxsts
Olá amigos,
Alamino escreveu:
Além de bibliotecas para modo real ou protegido."
De pronto, concordei com o colega. Depois fiquei pensando e surgiu a seguinte dúvida:

utilizando o Clipper, posso gerar vários arquivos .OBJ. Depois, com o auxílio do Lib.Exe, posso gerar uma Lib, contendo esses .OBJ. Quando eu for gerar o meu executável, a geração de uma aplicação em modo real ou protegido, vai depender apenas da opção que eu fizer em relação a meu programa link-editor. Assim, durante a fase de compilação, ainda não está definido o modo em que a aplicação será executada.

Estou certo?

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 26 Jul 2009 22:41
por Maligno
Sim.

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 27 Jul 2009 09:12
por alaminojunior
Está correto sim, mas lembre-se da pergunta inicial do colega:
Gostaria de saber se posso utilizar diferentes libs no mesmo sistema
E nós sabemos que o fato de misturar lib´s que trabalham em modo protegido com outras em modo real, não funciona.

Re: Utilizar diversas libs no mesmo sistema...???

Enviado: 27 Jul 2009 09:46
por Maligno
Mas na etapa de compilação realmente não há qualquer relação com o gerenciamento de memória do linker.

Mas misturar LIBs também não tem nada a ver com o modo real ou protegido. Nem sempre dá problema. Pode funcionar muito bem sim. Aliás, todos nós, que usamos o modo protegido, fazemos essa mistura a cada montagem de EXE.