Con "Visual Basic" creiamo una nuova libreria di classi dove scriveremo le funzioni che vogliamo mettere nella DLL.
Ricordiamo che tutte le funzioni dovranno essere pubbliche.
Ecco la struttura di una funzione:
Public Function NomeFunzione (byval argument1 as tipo_argomento, byal argument2 as tipo_argomento,...) Tipo_restituito 'Funzione End Function
Varie spiegazioni:
Public Function: definisce una funzione pubblica. Al posto di function possiamo mettere sub se la funzione non restituisce alcun valore.
Nome Funzione: mettiamo qui il nome della nostra funzione
byval: dice a vb che l'argomento che segue non potrà essere modificato. Possiamo usare "byref" per essere in grado di modificare l'argomento una volta inserito
Tipo_argomento: è il tipo dell'argomento che passiamo da gm a vb.
Per le comunicazioni con gm possiamo usare "as Double" (per passare numeri reali) e "as String" (per stringhe)
Tipo_restituito: è il tipo che verrà restituito dalla funzione a gm, stesso ragionamento per tipo_argomento per quanto riguarda i tipi utilizzabili.
Per far ritornare un valore dalla nostra funzione dovremo assegnare un valore ad essa. Ad esempio, se abbiamo messo: "public function Somma (byval n1 as double, byval n2 as double) as double", dovremo mettere "Somma = valore da restituire", in questo caso "Somma = n1+n2"
Ecco un esempio di funzione:
--------------------------------------------------------------------------------------------------
Public Function Messaggio (ByVal caption As String, ByVal testo As String) As Double
Messaggio = MsgBox (testo, MsgBoxStyle. OkOnly, caption)
End Function
--------------------------------------------------------------------------------------------------
Trattiamo ora l'argomento "Come usare le funzioni create in GM".
Come prima cosa compiliamo la nostra DLL. Fatto questo sappiate che GM non può leggere direttamente dll create in dotnet,
pertanto dovremo utilizzare una seconda DLL.
Fortunatamente, questa seconda DLL è già stata fatta, la troviamo su yoyogames qui:
http://gmc. yoyogames.com/index.php?showtopic=317121, insieme a molte informazioni su come usarla.
Come utilizziamo la layer dll nel link precedente?
Creiamo un nostro script chiamandolo "Init" e mettiamoci questo script:
--------------------------------------------------------------------------------------------------
layer_init ();
dll = layer_loaddll ("nome file della dll");
global. Class1 = layer_createinstance (dll, "namespace. Class", 0) //Creo l'istanza della classe nella quale ho scritto le funzioni
//namespace e class dovrebbero essere inizialmente (se non modificate queste proprietà su vb quando create la dll)
//"ClassLibrary1. Class1", ovviamente se create altre classi continuate sostituendo a class1 il nome della classe scelta.
--------------------------------------------------------------------------------------------------
Creiamo un altro script (questo è riferito alla funzione di esempio "Messaggio") e mettiamoci:
--------------------------------------------------------------------------------------------------
layer_function (global. Class1, "Messaggio", ty_real, 2, argument0, argument1)
-------------------------------------------------------------------------------------------------
A questo punto prendiamo dalla classe 1 la funzione chiamata "Messaggio" che restituisce un valore reale (ty_real) e ha 2 argomenti ("caption" e "testo").
Richiamando lo script che abbiamo creato, utilizzeremo i due argomenti ("argument0" e "argument1") per la funzione presa dalla classe.
--------------------------------------------------------------------------------------------------
Super_Slascio della Freank-Expo
Autore: Freank