elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Compartir un valor entre modulos clases
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Compartir un valor entre modulos clases  (Leído 3,339 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Compartir un valor entre modulos clases
« en: 21 Agosto 2012, 09:11 am »

Hola, alguien sabe de alguna forma de compartir un valor entre modulos clases, por ejemplo si yo agrego un modulo publico y pongo Dim Contador as long todas las clases dentro del proyecto pueden consultar ese valor desde el modulo publico, pero la idea de usar un modulo publico para declarar esa única variable no me gusta, debe existir alguna api, para hacer eso no?. (un Global o algo asi)

una opción se que puedo utilizar (CreateWindowEx ,FindWindow,  SetProp y GetProp ) pero no me parece para nada elegante.

mi idea es crear un tipo de semaforo o mejor dicho un tipo contador de clases que se van creando y cuando se descargan, van restando 1 valor al contador, cuando llega la ultima y ve que este valor es 0 llama a una función para descargar lo que cargo la primera

Saludos.


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Compartir un valor entre modulos clases
« Respuesta #1 en: 21 Agosto 2012, 11:05 am »

No seria mejor crear una clase CONTADORA que se pase por un ¿parámetro/propiedad a una clase que tu quieras? de esta manera en la función finalize llamas a la variable de la clase CONTADORA disminuyendo en 1... por obvias razones al asociar la clase CONTADORA a la clase X aumentaría en 1... otra forma seria crear una CLASE FACTORY y que a este misma se le pueda pasar una CLASE CONTADORA, el trabajo de FACTORY seria crear y asociar TODAS las clases X con una CLASE CONTADORA.

En otras palabras:

 * Clase X <--- Se debe establecer una propiedad o función por la cual se pueda establecer una clase CONTADORA, en su evento finalize debe llamar alguna función o hacer una edición a la variable miembro de la clase CONTADORA para disminuir.
 * Clase FATORY  <--- SOLO se limita a crear y asociar una Clase X con la Clase CONTADORA; se deben crear tantas clases FACTORY como clases X que se deseen administrar... se debe especificar una clase CONTADORA que llevara la función de contar.
 * Clase CONTADORA <-- Solo cuenta Sin importar el tipo de clase que sea, tambien puede estar dirigida a generar eventos...

NOTA: FACTORY y CONTADORA pueden fusionarse para facilidad de analogía...

LO MALO DE VB6 es que las declaraciones friend no funcionan como deberían...

Dulces Lunas¡


« Última modificación: 21 Agosto 2012, 11:20 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Compartir un valor entre modulos clases
« Respuesta #2 en: 21 Agosto 2012, 11:29 am »

una opción si quieras usar APIS es usar las APIS semáforos... no me se las respectivas APIS pero tienen una similitud con lo que tu deseas, aun que están destinadas a administración de hilos...

igual te dejo este pdf no tiene que ver nada con APIS pero te dará una idea de lo que te menciono.
http://clip.dia.fi.upm.es/~mcarro/Slides/Concurrent_Programming/04-Semaforos/semaforos_handout_4.pdf

Dulces Lunas¡.
En línea

The Dark Shadow is my passion.
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Compartir un valor entre modulos clases
« Respuesta #3 en: 21 Agosto 2012, 11:42 am »

Hola BlackZeroX , gracias por la ayuda, bien la idea es utilizar una sola clase, asi que dudo que se pueda hacer algo asi con el vb nada mas, y las apis que vi fue addAtom y sus derivadas pero no me sirven

puede que con CreateSemaphore sea la solución pero voy a investigarla porque nunca la use. después te cuento si me sirvio

Gracias saludos.

En línea

LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Re: Compartir un valor entre modulos clases
« Respuesta #4 en: 22 Agosto 2012, 06:10 am »

Solucionado, Cobein me tiro unas funciones utilizando TlsAlloc , TlsGetValue, TlsSetValue

http://leandroascierto.com/foro/index.php?topic=1844.0

Saludos.

En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Compartir un valor entre modulos clases
« Respuesta #5 en: 22 Agosto 2012, 07:29 am »

ammm si el caso era no encapsular la variable por así decirlo también podías usar VirtualAlloc, VirtualFree, ... y para leer y escribir ReadProcessMemory  y WriteProcessMemory o mas simple con GetMem4 y PutMem4 y posiblemente ZeroMemory aun que no es realmente necesaria.

Código
  1.  
  2. puerto = VirtualAlloc(ByVal 0&, &H4&, MEM_COMMIT or MEM_RESERVE, PAGE_READWRITE)
  3. debug.assert puntero = ERROR_INVALID_ADDRESS // linea de depuración: error al asignar la memoria.
  4.  
  5. PutMem4 puntero, 0  // es equivalente a       ZeroMemory puntero, &H4&
  6. GetMem4 puntero, byval varptr (valor)
  7. // es obligatorio despues de usar virtualAlloc despues de que no se ocupe la memoria pedida...
  8. virtualFree puntero, &h4&, MEM_DECOMMIT
  9. VirtualFree puntero, 0, MEM_RELEASE
  10.  
  11.  

aquí te dejo algo similar a lo que pides solo que yo lo use con LISTAS enlazadas... http://foro.elhacker.net/programacion_visual_basic/src_clistlink_lista_enlazada_mejor_dicho_bloques_enlazados-t339535.0.html

Cuando tenga mi nuevo monitor te hago unas funciones de estilo map.

P.D.: No sirven algunas teclas de mi teclado... por ello te lo pongo de esta manera.

Dulces Lunas¡.
« Última modificación: 23 Agosto 2012, 06:35 am por BlackZeroX (Astaroth) » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C++]¿Comunicacion entre clases? « 1 2 »
Programación C/C++
skorpion32 14 15,969 Último mensaje 2 Agosto 2011, 01:24 am
por [L]ord [R]NA
Heredar objeto entre clases [SOLUCIONADO]
PHP
Alex_bro 0 1,466 Último mensaje 22 Agosto 2011, 21:18 pm
por Alex_bro
relaciones entre clases
Java
ALBUR 2 2,515 Último mensaje 5 Mayo 2012, 10:46 am
por ALBUR
¿Quieres dar clases en la Deep Web? OnionIRC busca a quien quiera compartir ...
Noticias
wolfbcn 0 2,261 Último mensaje 13 Junio 2016, 14:04 pm
por wolfbcn
clases hijas que al ser instanciadas tienen el mismo valor del atributo estatico
Java
Beginner Web 2 2,654 Último mensaje 18 Julio 2019, 00:49 am
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines