GFA-BASIC WIN300 IntegerTest Eregebnis Ergebnis DoubleTest bleTest cbLen Hlstr WinDir stringTest2 BuildString Text DLLString Buffer Menues Menue Aufbau arweitert werdeNI ScreenFontDialog LibMain Test1 IntegerTest DoubleTest StringTest DoubleTest2 ReferenceTest BuildString BS Procedure SetString SetHlstr VBGetHlstr GetVBString Meldung ColorChooseDialog ColorDialog WinDirectory Choose ExitDialog DoubleTest IntegerTest VBGetHlstr VBGetHlstrLen StringTest StringTest2 String BuildString GetVBString Datei: VBTEST.DLL dynamische Link-Bibliothek Visual Basic WindowsREM Sprache: Basic Windows (Compiler)REM Aufgabe: hrung Grundlagen DLL-Programmierung Visual Basic Windows Basic Windows Autor: Dipl.-Ing. Andreas Maslo (c)1993: IngES$library VBTEST VBTEST.DLL Die DLL VBTEST.DLL ist nur von Visual Basic f r Windows nutzbar!Z PROCEDURE //diese Prozedur automatisch Laden aufgerufen VB:VERSION ALERT 3,"Die VBTEST.DLL Visual Basic Windows nutzbar!",1,"OK", RETVAL 0ELSERETVAL 1ENDIF RETURN PROCEDURE //Prozedur exportieren//Routinen innerhalb werden exportierten //Namen nicht Namen innerhalb Prozedur- //kopfes aufgerufen; beide Namen voneinander //unterscheiden $EXPORT IntegerTest //Ganzzahlwert aufrufendes Programm ckgeben RETVAL 5//Hinweis: diese Prozedur Funktion deklariert werden RETURN PROCEDURE )//VAR Reference, Werte Parameterlisten aufrufende Hauptprogramm ckzugeben$EXPORT ReferenceTest =1.23456 RETVAL 0RETURN//Beachten String bergabe Visual Basic in//der nachfolgenden NICHT glich Strings //anders unter GFA-Basic verwaltet werden //PROCEDURE StringTest(VAR Test$) $EXPORT StringTest Test$="Test" RETVAL //RETURN VBTEST.DLLY PROCEDURE )//Text Zeiger bernehmen, einen String //umwandeln ausgeben$EXPORT StringTest'Zeichenkette Pointer einlesen anzeigen;'CHAR wandelt Pointer Zeichenkette umMESSAGE CHAR{ "VBTEST.DLL",MB_OK, //Zeichenkette buchstaben konvertieren und//an aufrufendes Programm bergeben CHAR{ UCASE$( )//Hinweis: Beachten durch// Pointer bergebenen Zeichenkette nicht// POKE$ erweitert werden kann! Unter Zeichenkette Space$() String$() bereits die// maximal tigte Zeichenkettenl //bracht werden POKE$ RETURN PROCEDURE //Beispielprozedur: //Auswahldialog Farben Farbdefinition $Export ColorDialog =RGB(0,0,0)IF DIM?( ())=0 //beim ersten Aufruf nicht dimensioniert //wird Aufruf Dimensionierung //vorgenommen, kommt Programmabbruch //durch einen LaufzeitfehlerENDIF COLOR //Farbwert ckgeben RETVAL RETURN PROCEDURE )//Beispiel Aufruf einer Windows-API-Routine //(entspricht Aufbau innerhalb VB)//Windows-Pfad ermitteln$Export WinDirectory//Puffer Ergebnis bereitstellen =SPACE$(255) //API-Routine aufrufen =GetWindowsDirectory(V: ))POKE$ CHAR{V: }'Pfadl Funktionswert ckgebenRETVAL RETURN PROCEDURE )//Popup-Men ausgeben, eintr VB-Men entwurfsfenster definieren $Export Choose//Fenstertitel, eintr Form: //A$="Titel|Eintrag 1|Eintrag2|...|&Ende" //wird Pointer bergeben CHAR{ //ein Fenster unter GFA-Basic ffnet werden, //damit Popup-Men erscheint //Rechteck unterhalb Popup-Men zeichnen, damit //das Fenster selbst nicht sichtbar wirdOPENW 110,110,20,20, =POPUP( 110,110 //und wieder schlie CLOSEW RETVAL RETURN