USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Recebendo endereços de memória
Rafael Hanke
não registrado
Postada em 07/05/2004 13:59 hs   
Caros Colegas, boa tarde!
 
Gostaria de saber se através do Visual Basic tenho possubilidade de criar variáveis que ao invéz de receber valores, recebam endereços de memória, e passem a trabalhar nestes endereços de memória.
 
Para quem conhece um pouco de C/C++ quero criar ponteiros que recebam endereços de memória de uma strucrt pública.
 
Ou seja,
tenho uma tipagem de dados por mim criada, tipo:
 
Public Type MeuTipo
    nome as string
    telefone as string
end type
 
no mesmo módulo:
public agenda1 as MeuTipo
public agenda2 as MeuTipo
 
Agora preciso fazer com que uma outra variável receba o endereço de memória de agenda1, por exemplo, e passe a trabalhar com seus respectivos valores. Se possível ainda no cabeçalho de uma função, se não, em variável normal mesmo.
Ou seja, se fosse em função:
Sub Teste(byref dados as MeuTipo)
  dados.nome = "Teste"
end sub
 
Alguém sabe como eu possa fazer isso? Ficarei imensamente agradecido a quem puder me ajudar. Será de grande valia.
 
[]'s
 
Rfa
     
Jose.Niz
CURITIBA
PR - BRASIL
Postada em 07/05/2004 17:17 hs         
Existem 3 funções em VBA que não são documentadas e retornam o endereço de memória das variáveis: objPtr, strPtr, varPtr.
 
O valor retornado por essas funções (endereço de memória) deve ser armazenado em campos do tipo Long.
 
Em VB não existem operadores para trabalhar diretamente com ponteiros (como *, & e -> em C/C++), você deve utilizar a API CopyMemory (RtlMoveMemory).
Vale lembrar que todas as passagens de parâmetros são feitas por referencia no VB.
 
Desista de trabalhar com ponteiros em VB !
Qual o tamanho dos campos nome e telefone na udt meuTipo. É indefinido certo ?? então como trabalhar com ponteiros em VB .!?
 
 
     
Ama
Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 08/05/2004 23:10 hs         
leia o artigo no link abaixo e se precisar lhe envio uma aplicação simples com as instruções contidas neste artigo.
Quanto a opinião do josé não concordo pois para trabalhar com envios de dados entre programas diferentes como por exemplo numa IHM é imprecindível este conhecimento para maior flexibilidade e agilidade do programa
     
Jose.Niz
não registrado
Postada em 09/05/2004 12:36 hs   
Amauri, minha opinião se refere ao problema em questão, e não de forma genérica !
Se vc discorda, de uma solução para Rafael passar essa udt (como esta esta !) pois o link que você passou esta furado.
 
Public Type MeuTipo
    nome as string
    telefone as string
end type
     
Rafael Hanke
não registrado
Postada em 10/05/2004 13:28 hs   
Caro "Ama", gostaria de informar que conforme especificado pelo "Jose.Niz" o link realmente esrá quebrado. Por favor, verifique-o.
 
Caro "Jose.Niz", realmente eu senti esta dificuldade em trabalhar com ponteiros e endereços de memória no VB. As variáveis citadas como exemplo realmente são de tamanhos indefinidos. Analisarei a API citada. Em caso de dúvidas retorno contato.
Agradeço a sua colaboração. Foi de grande valia.
 
Aos demais colegas, se algum souber de alguma outra forma de solucionar meu problema, por favor, não deixe de se expressar.
 
Att,
 
Rafael Hanke
     
Ama
Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 11/05/2004 00:43 hs         
tentem nos endereços abaixo se não conseguirem nada
me passem os emails que envio o tutorial direto
já tenho um programa que envia strings, matriz e float formato IEEE vou tentar
adaptar para UDT e vou colocar aqui, dentro de uns quatro dias devo ter conseguido
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página