Login
Buscar
Quem está conectado
Há 5 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 5 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 71 em 19/7/2010, 11:47
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| marcelofazan | ||||
| mfelis | ||||
| cabeludo | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| marcio |
Contagem Regressiva em tela de login
16/7/2010, 11:10 por Linghston
Ola amigos, esta é minha primeira participação neste forum e espero poder encontar aqui ajuda para ...
Comentários: 15
Estatísticas
Temos 926 usuários registradosO último usuário registrado atende pelo nome de Maria Tognetti
Os nossos membros postaram um total de 8596 mensagens em 1239 assuntos
Criando DLL's com o VFP 9.0
Programação Brasil :: Linguagens de Programação :: Visual Foxpro / Foxpro (for MS-DOS) :: Tutoriais, Apostilas, Códigos e Projetos
Página 1 de 1 • Compartilhe •
Criando DLL's com o VFP 9.0
Uma forma muito útil de protegermos nossos códigos e tornar nossa aplicação mais organizada é a utilização de DLL's criadas com o próprio Visual Foxpro.
Como criar tais DLL's?
1. Abra o Visual Foxpro e crie um novo projeto. Nomei-o como "MinhaDLL.pjx"
2. Adicione um novo código (.prg) ao seu projeto. Nomei-o como "MinhaDLL.prg"
3. Adicione o seguinte conteúdo ao arquivo:
4. Copile o projeto como demonstrado na imagem a seguir:
[Você precisa estar registrado e conectado para ver esta imagem.]
Nota: Clique em Build, e marque as opções "Mult-threaded COM server (dll)", "Recompile All Files" e "Display Errors".
Tendo feito isto, sua DLL foi criada com sucesso!
Como utilizar a DLL gerada no fox?
1. O ideal é que as DLL's sejam colocadas na pasta default da aplicação.
2. Na parte do sistema onde desejas utilizar os recursos da DLL, utilize o seguinte exemplo:
Espero ter contribuído!
Qualquer dúvida é só postar!

Como criar tais DLL's?
1. Abra o Visual Foxpro e crie um novo projeto. Nomei-o como "MinhaDLL.pjx"
2. Adicione um novo código (.prg) ao seu projeto. Nomei-o como "MinhaDLL.prg"
3. Adicione o seguinte conteúdo ao arquivo:
- Código:
#DEFINE _enter CHR(13)+CHR(10)
DEFINE CLASS minhadll AS CUSTOM OLEPUBLIC
PROCEDURE minhafuncao AS void
MESSAGEBOX(THIS.funcaointerna(), 48, "MinhaDLL")
ENDPROC
HIDDEN FUNCTION funcaointerna AS STRING
*!* O atributo HIDDEN torna esta função invisível para os
*!* objetos instanciados desta classe.
*!* Sendo assim esta função poderá ser utilizada apenas pelas
*!* demais funções de classe.
LOCAL mensagem AS STRING
*!*
m.mensagem = "Texto contido na função interna da DLL!" + _enter
m.mensagem = m.mensagem + "Esta função não poderá ser acessada por uma instância da classe"
*!*
RETURN m.mensagem
ENDFUNC
ENDDEFINE
4. Copile o projeto como demonstrado na imagem a seguir:
[Você precisa estar registrado e conectado para ver esta imagem.]
Nota: Clique em Build, e marque as opções "Mult-threaded COM server (dll)", "Recompile All Files" e "Display Errors".
Tendo feito isto, sua DLL foi criada com sucesso!
Como utilizar a DLL gerada no fox?
1. O ideal é que as DLL's sejam colocadas na pasta default da aplicação.
2. Na parte do sistema onde desejas utilizar os recursos da DLL, utilize o seguinte exemplo:
- Código:
LOCAL obj as Object
*!* Instancia um objeto da DLL
m.obj = NEWOBJECT("MinhaDLL", SYS(5)+CURDIR()+"MinhaDLL.dll")
*!* Chama a função disponível na DLL
m.obj.minhafuncao()
m.obj = NULL
Espero ter contribuído!
Qualquer dúvida é só postar!
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Sobre as minhas funcoes, cgc, cpf, extenso
Deixa eu ver se eu entendi:
Se eu tiver varias funcoes, verifica cnpj, cpf, extenso e ,etc.
Eu poderia criar uma dLL, E COMO eu chamaria esta funcao "Cnpj" por exemplo usando a dll, em outro projeto.
Esta e a melhor forma, ?
Ou como eu li uma coloque numa "classe" em um form vazio estas funcoes, tipo cadastro de clientes ou fornecedores para verificar se o usuario final, digitou o cnpj ou cpf corretamente?.
Se eu tiver varias funcoes, verifica cnpj, cpf, extenso e ,etc.
Eu poderia criar uma dLL, E COMO eu chamaria esta funcao "Cnpj" por exemplo usando a dll, em outro projeto.
Esta e a melhor forma, ?
Ou como eu li uma coloque numa "classe" em um form vazio estas funcoes, tipo cadastro de clientes ou fornecedores para verificar se o usuario final, digitou o cnpj ou cpf corretamente?.
alceu11- Participante Assíduo

Re: Criando DLL's com o VFP 9.0
Alceu, com certeza é uma das melhores formas pois estamos utilizando o conceito de Programação Orientada a Objeto.
A forma como chamamos as funções da DLL está descrita na primeira mensagem, mas estou mandando um simples exemplo:
- [Você precisa estar registrado e conectado para ver este link.]
A forma como chamamos as funções da DLL está descrita na primeira mensagem, mas estou mandando um simples exemplo:
- [Você precisa estar registrado e conectado para ver este link.]
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Criando DLL's com o VFP 9.0
marcos
classe eh diferente de dll certo?
pela duvida do alceu, que faco minha tambem, achei mais facil,
pelo menos para entender teoricamente, usar a dll! voce acha
a utilizacao de dll mais facil do que a de classes?
entre classe e dll, o que tem mais performance? (em casos como
validacoes de cnpj, cpf e etc...)
obrigado
classe eh diferente de dll certo?
pela duvida do alceu, que faco minha tambem, achei mais facil,
pelo menos para entender teoricamente, usar a dll! voce acha
a utilizacao de dll mais facil do que a de classes?
entre classe e dll, o que tem mais performance? (em casos como
validacoes de cnpj, cpf e etc...)
obrigado
_________________
A lingua é o chicote do corpo! Minhas feridas ainda doem!

hugo- Usuário 5 Estrelas

Re: Criando DLL's com o VFP 9.0
neste caso, não se trata somente de performance, mas sim de orientação a objeto.
Observe na pasta System32 e verás que o windows trabalha, e muito, com DLL's e isto nos permite reutilizar alguns códigos para nossas próprias aplicações. Ex.: kernel32.dll
em fox, as DLL's nada mais são que classes de acesso público, e, diferente das classes, podem ser atualizadas sem a necessidade de recompilar o projeto. E para proteger o código da DLL em fox é simples: REFOX.
No caso do [Você precisa estar registrado e conectado para ver este link.] que estamos desenvolvendo, adotamos o MySQL como banco. Então é bem mais prático colocar a classe de acesso a banco numa DLL. Desta forma, se houver problemas, futuramente, com a rotina de acesso ao banco MySQL, precisaremos apenas atualizar a DLL no cliente, sem recompilar o projeto.
Em resumo, é isto.

Observe na pasta System32 e verás que o windows trabalha, e muito, com DLL's e isto nos permite reutilizar alguns códigos para nossas próprias aplicações. Ex.: kernel32.dll
em fox, as DLL's nada mais são que classes de acesso público, e, diferente das classes, podem ser atualizadas sem a necessidade de recompilar o projeto. E para proteger o código da DLL em fox é simples: REFOX.
No caso do [Você precisa estar registrado e conectado para ver este link.] que estamos desenvolvendo, adotamos o MySQL como banco. Então é bem mais prático colocar a classe de acesso a banco numa DLL. Desta forma, se houver problemas, futuramente, com a rotina de acesso ao banco MySQL, precisaremos apenas atualizar a DLL no cliente, sem recompilar o projeto.
Em resumo, é isto.
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Criando DLL's com o VFP 9.0
Hugo/Alceu
Este conceito de dll para conexão e outras funções é muito utilizado no desenvolvimento de sistemas em 3 camadas (Aplicações Cliente/Servidor), hoje os sistemas de ERP grande partes são baseados nessa metodologia.
Veja esse artigo que explica bem como utilizar.
[Você precisa estar registrado e conectado para ver este link.]
é um pouco mais complicado de programar e entender este conceito porem o ganho depois e muito grande e também tem o custo financeiro que torna o projeto mais acesssivel uma vez que somente uma aplicação conversa com o banco de dados e não todas as estações e outra a perfomace é muito mais rápido.
Este conceito de dll para conexão e outras funções é muito utilizado no desenvolvimento de sistemas em 3 camadas (Aplicações Cliente/Servidor), hoje os sistemas de ERP grande partes são baseados nessa metodologia.
Veja esse artigo que explica bem como utilizar.
[Você precisa estar registrado e conectado para ver este link.]
é um pouco mais complicado de programar e entender este conceito porem o ganho depois e muito grande e também tem o custo financeiro que torna o projeto mais acesssivel uma vez que somente uma aplicação conversa com o banco de dados e não todas as estações e outra a perfomace é muito mais rápido.
Nelson Arcas- Participa Bastante

Re: Criando DLL's com o VFP 9.0
O link é bastante esclarecedor, Nelson!


_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Criando DLL's com o VFP 9.0
Boa Nelson
Esclareceu mais ainda valeu ai pela sua ajuda.
Mesmo pq temos tantas funcoes, no sistema quebradas em varias rotinas nada como unir todas em uma dll.
So que temos que ter cuidado :
Qdo fazer alguma alteracao numa destas funcoes. pois teremos que gerar uma nova dll com as mundancas.
Pq em outro forum teve um topico que alguem quase me deixou louco, pq uma funcao destas estava em uma DLL , e apos altera-la nao se gerou novamente dll, a ai nao SE achava o problema. sÓ apos recompilar a dll que o problema foi sanado.
Mais um vez obrigado Nelson Arcas. Por ter acompanhando, este topico, e postado aqui esta sua resposta.
Sempre estou aprendendo mesmo estando ja com 50 anos de idade, nunca despresei, informacao sobre o visual fox pro, e a daquele que pensa que sabe tudo.
Lembro uma frase no utilmo ano de faculdade. Ondi para passar de ano teriamos que em equipe montar um projeto.
E a turma mais aplicada, no final da aprensentacao no projetor,
colocou a seguinte frase "Turma 4BC " nos somos maximo"!!!
E o professor disse o maximo foi o Cara que desenvolveu a Ferramenta FOXBASE.
Pois ele sim deu nos a ferramenta !!!
Esclareceu mais ainda valeu ai pela sua ajuda.
Mesmo pq temos tantas funcoes, no sistema quebradas em varias rotinas nada como unir todas em uma dll.
So que temos que ter cuidado :
Qdo fazer alguma alteracao numa destas funcoes. pois teremos que gerar uma nova dll com as mundancas.
Pq em outro forum teve um topico que alguem quase me deixou louco, pq uma funcao destas estava em uma DLL , e apos altera-la nao se gerou novamente dll, a ai nao SE achava o problema. sÓ apos recompilar a dll que o problema foi sanado.
Mais um vez obrigado Nelson Arcas. Por ter acompanhando, este topico, e postado aqui esta sua resposta.
Sempre estou aprendendo mesmo estando ja com 50 anos de idade, nunca despresei, informacao sobre o visual fox pro, e a daquele que pensa que sabe tudo.
Lembro uma frase no utilmo ano de faculdade. Ondi para passar de ano teriamos que em equipe montar um projeto.
E a turma mais aplicada, no final da aprensentacao no projetor,
colocou a seguinte frase "Turma 4BC " nos somos maximo"!!!
E o professor disse o maximo foi o Cara que desenvolveu a Ferramenta FOXBASE.
Pois ele sim deu nos a ferramenta !!!
alceu11- Participante Assíduo

Re: Criando DLL's com o VFP 9.0
obrigado nelson, marcos e alceu
abraco galera
este forum promete!!!
abraco galera
este forum promete!!!
_________________
A lingua é o chicote do corpo! Minhas feridas ainda doem!

hugo- Usuário 5 Estrelas

Re: Criando DLL's com o VFP 9.0
Pessoal, tenho uma dúvida:
As Dlls criadas no Visual FoxPro podem ser usadas em outros aplicativos, outras linguagens?
Por exemplo, um programa em Delphi usando uma Dll feita em FoxPro..
Fiz um teste uma vez e não deu muito certo, acho que fiz algo errado, por isso a pergunta.. heheh..
As Dlls criadas no Visual FoxPro podem ser usadas em outros aplicativos, outras linguagens?
Por exemplo, um programa em Delphi usando uma Dll feita em FoxPro..
Fiz um teste uma vez e não deu muito certo, acho que fiz algo errado, por isso a pergunta.. heheh..
_________________
Que a força esteja com você.
[Você precisa estar registrado e conectado para ver este link.]

Tales Ruan- Participa Bastante

Re: Criando DLL's com o VFP 9.0
Tales, neste caso, nunca precisei utilizar, mas se houver possibilidade, certamente exigirá configurações adicionais pois uma DLL em fox é criada com classe (pelo menos da forma como foi demonstrado neste exemplo).
Já "C" as DLL's são criadas com funções, por isso que para utilizá-la, declaramos como no exemplo:
Para ser genéria, o ideal é fazer a DLL em C, mesmo.

Já "C" as DLL's são criadas com funções, por isso que para utilizá-la, declaramos como no exemplo:
- Código:
DECLARE INTEGER NomFuncaoDLL IN nomeDLL.DLL STRING, INTEGER
Para ser genéria, o ideal é fazer a DLL em C, mesmo.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum






» Gerador randomico de chave/senha VFP
» Help do VFP 9 desapareceu
» Acessos no Programação Brasil
» Niver do Alceu
» Report com comandos de impressão @ SAY
» VFP Studio
» Emulacao de MAC em PC
» Imagem
» Formação em produção de games 3D no Rio de Janeiro
» Trazer para frente uma aplicação em execução
» PictureBox com fundo transparente
» Report so imprime primeiro registro
» IE x VFP
» Aplicativos para Dispositivos moveis
» Problemas com Form MDI
» Dataset ou Datatable
» Desabafo de um idoso!
» Select criando cursor apresenta erro
» Comandos alterados de DOS para Visual