//Ejemplo de DLL Win32 escrita en Advance++
//Este solo un ejemplo ilustrativo. tengo mucho trabajo que hacer aun... :)
Project MyDLL
{
//Este proyecto es una libreria de enlace dinamico
Type DinamicLinkLibrary;
//Inicializa la libreria
Constructor()
{
//Hacer alguna rutina de inicializacion...
}
//Este módulo sera exportado en la DLL, por eso lo
//dejaremos como publico
Public Module Kernel
{
//Esta clase es visible desde módulos exteriores
Public Class Doubleton
{
//Doubletones..
//Son como los singletones, pero ahora tenemos dos instancias
//en lugar de una...
Public
{
//El constructor...
Constructor()
{
//Hacer alguna rutina de inicializacion...
}
//El destructor...
Destructor()
{
//Hacer alguna rutina de terminacion
//(liberar recursos, etc.)
}
}
//Todo lo que este en el bloque de un modificador,
//pertenece al modificador.
Static
{
Private
{
Doubleton* hInstance1 = Null //Instancia 1
Doubleton* hInstance2 = Null //Instancia 2
}
Public
{
//Devuelve la instancia 1
Doubleton* GetInstance1()
{
If (hInstance1 != Null)
{
hInstance1 = New Doubleton();
}
}
//Devuelve la instancia 2
Doubleton* GetInstance2()
{
If (hInstance2 != Null)
{
hInstance2 = New Doubleton();
}
}
//Elimina la instancia 1
Void DeleteInstance1()
{
If (hInstance1 != Null)
{
Delete hInstance1;
hInstance1 = Null;
}
}
//Elimina la instancia 2
Void DeleteInstance2()
{
If (hInstance2 != Null)
{
Delete hInstance1;
hInstance2 = Null;
}
}
}
}
}
}
}