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

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

rangelssilva
Usuário Nível 1
Usuário Nível 1
Mensagens: 48
Registrado em: 27 Jul 2007 15:24
Localização: São Paulo - SP

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

Mensagem 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
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

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

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem 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.).
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

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

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem por alxsts »

Bem lembrado Alamino!
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

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

Mensagem 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?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

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

Mensagem por Maligno »

Sim.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

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

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

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

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder