PDA

Ver la Versión Completa : Librerias y variables


aenima
15-11-2007, 00:57:51
Hola.

Soy novatilla en esto de Delphi y estoy un poco perdida.

Tengo que hacer un programa que consta de un programa principal, una libreria y una unidad de exportacion de la libreria.

Bien, en el programa principal llamo a los procedimientos y funciones de la libreria, en esta hago mis operaciones y quiero retornar mi tipo de datos al programa principal para trabajar con él.
Antes de esto tenia procedimientos y funciones en unidades separadas y entonces si funcionaba. Para ello tenía en uno de los modulos una variable global que usaba en el programa principal pero ahora no sé como hacerlo puesto que veo que las bibliotecas no pueden exportas variables globales....

Estoy muy perdida con el tema de las bibliotecas, cualquier ayudita es bienvenida.

Muchas gracias :)

Al González
15-11-2007, 07:12:36
¡Hola!

Al parecer te refieres a una biblioteca de enlaces dinámicos, o sea una DLL. Es correcto, sus funciones no pueden acceder de manera simple a la memoria global de la aplicación que las usa, pero existen alternativas.

Quizá si nos planteas qué hacen tus funciones y cómo debe trabajar el programa, podríamos tratar de orientarte.

Un abrazo.

Al González. :)

P.D. En programación, cuando se habla de archivos de funciones, clases o recursos de programación, ya sean en código fuente o como DLLs, la palabra librería es incorrecta.

aenima
15-11-2007, 09:46:04
Pues mi programa simula una maquina tragaperras.

En la DLL tengo sus funciones: Tirada, AvanzarRueda, EscribirCombinacionRueda y dos más de escritura. Tirada es una funciona y lo demás son procedimientos. Aparte tengo una unidad con los tipos usados: TFigura, TCombinacionRuedas, etc.

Sus cabeceras son:

procedure EscribirCombinacionRuedas(Combinacion: TCombinacionRuedas);
procedure EscribirRuedasAvanzar(Combinacion: TCombinacionRuedas);
procedure EscribirCombinacionesPremiadas(Premiadas: TCombinacionesPremiadas);

function Tirada: TCombinacionRuedas;
procedure AvanzarRueda(NumRueda: integer; var Combinacion:TCombinacionRuedas);

En principio tenía aparte un modulo con los 3 primeros procedimientos, otro modulos con los dos ultimos y un programa principal que con uses me usaba los dos módulos y funcionaba. En uno de los modulos tengo 3 variables globales que usaba el 2º modulo y el programa principal y creo que es ahi donde está el problema.
Las variables que pasaba del modulo al p.p. son:
var
FigurasRueda:TFigurasRueda;
CombinacionesPremiadas:TCombinacionesPremiadas;
Ruedas:TcombinacionRuedas;

Ahora me piden hacerlo con librerias y ya no escribe nada en el programa principal. Me huelo que es un problema con las variables pero no sé como resolverlo.

Muchas gracias por contestar :o