silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: évènement USER_EVENT(freebasic DLL) Mer 4 Jan 2017 - 15:41 | |
| Bonjour à tous! Voici le code de jack traduis en freebasic pour déclencher un évènement par DLL: - Code:
-
' MaDLL.bas ' compile with: fbc -dll MaDLL.bas ' ou: "<$fbc>" "-dll" "<$file>" ' (original: "<$fbc>" "<$file>")
' Sujet 'Evènement USER_EVENT': http://panoramic.1fr1.net/t4785-evenement-user_event
' l'include est présent dans le package FreeBasic #include "windows.bi"
EXTERN "windows-ms"
const WM_USER=1024 'standard Windows const Message_DLL=WM_USER+3000 '3000 = valeur pour les messages panoramic(défini par Jack) dim shared WP as UInteger dim shared LP as UInteger dim shared Result as UInteger Declare Function USER_EVENT(ByVal Nb1 As Any Ptr) As Integer ' ICI COMMENCE PANORAMIC Function USER_EVENT(ByVal Nb1 As Any Ptr) As Integer export 'nb1 = handle du form 0 reçu de panoramic WP=10 'par exemple LP=20 'par exemple ' Result=SendMessage(Nb1, Message_DLL, WP, LP) 'envoi un message(c'est à dire WP et LP) au form 0(=déclencher évènement) function = Result 'contrairement à un sub, une fonction doit renvoyer un résultat end function
END EXTERN Une fois compilé, on obtient 'MaDLL.dll' et le source en panoramic pour tester: - Code:
-
label traite_event On_User_Event traite_event dll_on "MaDLL.dll" print dll_call1("USER_EVENT",handle(0)) dll_off end
traite_event: message "événement déclenché par DLL"+chr$(13)+chr$(10)+str$(USER_EVENT_LPARAM)+chr$(13)+chr$(10)+str$(USER_EVENT_WPARAM) return Amusez-vous! | |
|