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

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Estatísticas
Temos 3637 usuários registradosO último usuário registrado atende pelo nome de reginaldolimas
Os nossos membros postaram um total de 13981 mensagens em 1959 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- Usuário 5 Estrelas

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:
- Clique aqui para baixar o arquivo!
A forma como chamamos as funções da DLL está descrita na primeira mensagem, mas estou mandando um simples exemplo:
- Clique aqui para baixar o arquivo!
_________________
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 tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - [Você precisa estar registrado e conectado para ver este link.]

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- Usuário 5 Estrelas

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 tristeza é a falta de alegria, mais sem ela eu não poderia entender a alegria do fato de que a felicidade existe!"
Helio Leites - [Você precisa estar registrado e conectado para ver este link.]

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..
_________________
Adeus, FoxPro. Agora vou programar em Java [Você precisa estar registrado e conectado para ver esta imagem.]

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

Programação Brasil :: Linguagens de Programação :: Visual Foxpro / Foxpro (for MS-DOS) :: Tutoriais, Apostilas, Códigos e Projetos
Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início
» Ajuda com Imagens no MySQL
» Registrar OCX Windows Seven
» Criar Variáveis em sequencia
» No final a Impressora não Ejecta cem corta o papel
» Instalando MySQL no linux
» Como Criar arquivos de Log`s para certos usuarios
» MySQL X VFP @MEMO
» Dirf
» EXE Instalador Não Executa
» SQL Server Setup
» localizar registro no postgreslq (alterar/incluir)
» Saber se existe uma tabela??
» Empacotar arquivos em um único executável
» VAGAS ANALISTA DE SISTEMAS - VISUAL FOX
» Escrever a DATA por extenso
» ActionScript - Introdução
» Selecionar campo com mais de 9 caracteres
» CEP do BRASIL e dos UFs do brasil com codigo do IBGE para nf - <<<
» Tutorial HTML