Programma di esempio EXTFUNC.PRT |
; EXTFUNC
;
; Programma per Proteus
;
; (C) 2003 Simone Zanella Productions
;
; Dimostra come è possibile invocare una funzione esterna, dopo averla realizzata
; e compilata in una DLL.
;
; In questo esempio, le funzioni caricate si trovano in PROTEXT.DLL.
#!proteus -z -j
; Costanti per MessageBox
; Pulsanti
; - OK (default)
CONST MB_OK 0x00000000
; - OK, ANNULLA
CONST MB_OKCANCEL 0x00000001
; - ANNULLA, RIPROVA, IGNORA
CONST MB_ABORTRETRYIGNORE 0x00000002
; - SI', NO, ANNULLA
CONST MB_YESNOCANCEL 0x00000003
; - SI', NO
CONST MB_YESNO 0x00000004
; - RIPROVA, ANNULLA
CONST MB_RETRYCANCEL 0x00000005
; Icona
; - mano
CONST MB_ICONERROR 0x00000010
CONST MB_ICONHAND 0x00000010
CONST MB_ICONSTOP 0x00000010
; - punto di domanda
CONST MB_ICONQUESTION 0x00000020
; - punto esclamativo
CONST MB_ICONWARNING 0x00000030
CONST MB_ICONEXCLAMATION 0x00000030
; - informazione
CONST MB_ICONINFORMATION 0x00000040
CONST MB_ICONASTERISK 0x00000040
; Pulsante di default
; - uno
CONST MB_DEFBUTTON1 0x00000000
; - due
CONST MB_DEFBUTTON2 0x00000100
; - tre
CONST MB_DEFBUTTON3 0x00000200
; - quattro
CONST MB_DEFBUTTON4 0x00000300
; Modalità della finestra
; - modale
CONST MB_APPLMODAL 0x00000000
; - modale di sistema
CONST MB_SYSTEMMODAL 0x00001000
; - modale del task
CONST MB_TASKMODAL 0x00002000
; Pulsante di help
CONST MB_HELP 0x00004000
; La finestra del messaggio non prende il fuoco
CONST MB_NOFOCUS 0x00008000
; La finestra passa in primo piano
CONST MB_SETFOREGROUND 0x00010000
; La finestra compare solo sul desktop di default
CONST MB_DEFAULT_DESKTOP_ONLY 0x00020000
; Stile sempre in primo piano
CONST MB_TOPMOST 0x00040000
; Testo giustificato a destra
CONST MB_RIGHT 0x00080000
; Notifica da un servizio
CONST MB_SERVICE_NOTIFICATION 0x00200000
!extern MessageBox, PROTEXT.DLL, ProteusMessageBox, 3, 0
; Mostra due messaggi di sistema
CONSOLELN "Risultato prima MessageBox: " \
MessageBox("Esempio di messaggio.", "Titolo", NOR(MB_OK, MB_ICONINFORMATION))
CONSOLELN "Risultato seconda MessageBox: " \
MessageBox("Proseguiamo?", "Domanda", NOR(MB_YESNO, MB_ICONQUESTION))
; Esempio di thunk di collegamento tra Proteus ed una DLL di terze parti
!extern BCFEncode, PROTEXT.DLL, BCFEncode, 3, 512
CONSOLELN "Risultato prima chiamata BCFEncode: " BCFEncode("0123456789", "ITF", 1)
CONSOLELN "Risultato seconda chiamata BCFEncode: " BCFEncode("123456789012", "EAN13", 1)
ABORT 0