FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Utilisation de PANORAMIC.DLL avec FreeBASIC Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
SSD interne Crucial BX500 2,5″ SATA – 500 Go à 29,99€
29.99 €
Voir le deal

 

 Utilisation de PANORAMIC.DLL avec FreeBASIC

Aller en bas 
2 participants
AuteurMessage
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Utilisation de PANORAMIC.DLL avec FreeBASIC Empty
MessageSujet: Utilisation de PANORAMIC.DLL avec FreeBASIC   Utilisation de PANORAMIC.DLL avec FreeBASIC EmptyMar 5 Juin 2012 - 10:17

J'ai mis sur mon site une archive contenant :

- la liste des sous-programmes exportés par la DLL panoramic.dll
- la bibliothèque d'importation pour FreeBASIC : libpanoramic.dll.a

http://www.unilim.fr/pages_perso/jean.debord/panoramic/fbpano.zip

Pour utiliser la DLL avec FreeBASIC, il faut :

- placer panoramic.dll dans WINDOWS\SYSTEM (ou équivalent)
- placer libpanoramic.dll.a dans le sous-répertoire LIB\WIN32 de FreeBASIC

Voici un exemple d'utilisation (pour le moment, je n'ai réussi qu'à afficher une fenêtre) :

Code:

#inclib "panoramic"

declare sub pn_form  cdecl alias "pn_form"  ( byval num as integer )
declare sub pn_left  cdecl alias "pn_left"  ( byval num as integer, byval p_left  as integer )
declare sub pn_width  cdecl alias "pn_width"  ( byval num as integer, byval p_width  as integer )
declare sub pn_top    cdecl alias "pn_top"    ( byval num as integer, byval p_top    as integer )
declare sub pn_height cdecl alias "pn_height" ( byval num as integer, byval p_height as integer )

pn_form  1
pn_left  1, 200
pn_width  1, 500
pn_top    1, 200
pn_height 1, 500

sleep

La fenêtre s'affiche bien, mais je n'arrive pas à y placer des objets (boutons ...)

Et quand je donne à la fenêtre le numéro zéro, cela provoque un plantage !
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Utilisation de PANORAMIC.DLL avec FreeBASIC Empty
MessageSujet: Re: Utilisation de PANORAMIC.DLL avec FreeBASIC   Utilisation de PANORAMIC.DLL avec FreeBASIC EmptyMar 5 Juin 2012 - 10:51

Bravo pour tes essais, tu es dans la bonne voie.
Mais pour utiliser panoramic.dll, il faut passer par une application Windows en FreeBasic avec en particulier une "pompe à message", sinon FORM0 ne réagira pas.
D'autre part, la DLL doit être initialisée par l'appel de pn_init, puis terminée par pn_close.
pn_init crée la fenêtre de numéro 0 (FORM0), et c'est pour cela que tu ne peux pas la créer par ta méthode.

Tu me demandais le .bi dans un autre message, mais comme tu le vois, il n'y a pas de bibliothèque. A la traduction, un seul source se construit automatiquement, en fonction des mots-clés trouvés dans le source. Il n'y a pas besoin de bibliothèque d'appels.

Dans le source utilisé pour la démo, les mots-clés trouvés sont:
width
height
picture
full_space
color
2d_circle
2d_flood
caption
et il n'y a donc dans le source FreeBasic des déclarations que pour ces mots-clés.


Attention: panoramic.dll a volontairement été limitée à 5 objets.
En la limitant, j'empêche ainsi toute utilisation véritable, car cette DLL n'est que le résultat d'un essai de faisabilité et rien de plus. Je ne sais pas encore si j'utiliserai une DLL ou un exécutable avec le code compilé.


Dernière édition par Jack le Mar 5 Juin 2012 - 20:55, édité 1 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Utilisation de PANORAMIC.DLL avec FreeBASIC Empty
MessageSujet: Re: Utilisation de PANORAMIC.DLL avec FreeBASIC   Utilisation de PANORAMIC.DLL avec FreeBASIC EmptyMar 5 Juin 2012 - 17:13

Merci pour cet exemple Jack. Je vais l'étudier attentivement.

Mon but est de transformer mes applications qui pour le moment utilisent un programme principal en Panoramic et une DLL en FreeBASIC. Je préférerais faire l'inverse (programme principal en FB avec appels de PANORAMIC.DLL). Cela éviterait les limitations dues à la syntaxe des fonctions DLL_CALL ou à la difficulté d'utiliser plusieurs DLLs en Panoramic.

Et comme tu as parlé de faire du calcul matriciel en Panoramic, j'ai toute une bibliothèque en FB que je pourrais mettre à disposition. Donc tu vois c'est bien pour la bonne cause Smile

Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

Utilisation de PANORAMIC.DLL avec FreeBASIC Empty
MessageSujet: Re: Utilisation de PANORAMIC.DLL avec FreeBASIC   Utilisation de PANORAMIC.DLL avec FreeBASIC EmptyMer 6 Juin 2012 - 9:54

Voici donc mon programme modifié. Il se contente d'afficher un seul bouton.

Code:

#include once "windows.bi"

'===============================================================================
' DECLARATION DES PROCEDURES DE LA DLL
' (ceci pourrait aller dans un fichier *.bi)
'===============================================================================

#inclib "panoramic"

declare sub pn_init    cdecl alias "pn_init"    ( byval h as handle )
declare sub pn_close  cdecl alias "pn_close"  ( )

declare sub pn_button  cdecl alias "pn_button"  ( byval num as integer )
declare sub pn_left    cdecl alias "pn_left"    ( byval num as integer, byval p_left    as integer )
declare sub pn_width  cdecl alias "pn_width"  ( byval num as integer, byval p_width  as integer )
declare sub pn_top    cdecl alias "pn_top"    ( byval num as integer, byval p_top    as integer )
declare sub pn_height  cdecl alias "pn_height"  ( byval num as integer, byval p_height  as integer )
declare sub pn_caption cdecl alias "pn_caption" ( byval num as integer, byval p_caption as string  )

'===============================================================================
' LANCEMENT WINDOWS
'===============================================================================

declare function WinMain ( byval hInstance as HINSTANCE, _
                          byval hPrevInstance as HINSTANCE, _
                          byval szCmdLine as string, _
                          byval iCmdShow as integer ) as integer                               

WinMain( GetModuleHandle( null ), null, Command( ), SW_NORMAL )

'-------------------------------------------------------------------------------

function WndProc (byval hWnd as HWND, _
                  byval wMsg as UINT, _
                  byval wParam as WPARAM, _
                  byval lParam as LPARAM ) as LRESULT
               
function = 0

select case( wMsg )

case WM_CREATE         
    exit function
     
case WM_KEYDOWN
    if (lobyte(wParam ) = 27) then
        PostMessage(hWnd, WM_CLOSE, 0, 0 )
    end if

case WM_DESTROY
 
    pn_close()
    sleep 100
    ' DyLibFree( library )
 
    PostQuitMessage( 0 )
    exit function

end select
function = DefWindowProc( hWnd, wMsg, wParam, lParam ) 
end function

' ------------------------------------------------------------------------------

function WinMain (byval hInstance as HINSTANCE, _
                  byval hPrevInstance as HINSTANCE, _
                  byval szCmdLine as string, _
                  byval iCmdShow as integer ) as integer 
 
dim wMsg as MSG
dim wcls as WNDCLASS 
dim hWnd as HWND
 
function = 0
 
with wcls
    .style        = CS_HREDRAW or CS_VREDRAW
    .lpfnWndProc  = @WndProc
    .cbClsExtra    = 0
    .cbWndExtra    = 0
    .hInstance    = hInstance
    .hIcon        = LoadIcon( NULL, IDI_APPLICATION )
    .hCursor      = LoadCursor( NULL, IDC_ARROW )
    .hbrBackground = GetStockObject( WHITE_BRUSH )
    .lpszMenuName  = NULL
    .lpszClassName = @"HelloWin"
end with
       
if (RegisterClass( @wcls ) = FALSE ) then
    MessageBox( null, "Failed to register wcls", "Error", MB_ICONERROR )
    exit function
end if
 
hWnd = CreateWindowEx(0, _
                      @"HelloWin", _
                      "ESSAI_DLL", _
                      WS_OVERLAPPEDWINDOW, _
                      200, _ ' LEFT
                      200, _ ' TOP
                      500, _ ' WIDTH
                      500, _ ' HEIGHT
                      NULL, _
                      NULL, _
                      hInstance, _
                      NULL )                             
ShowWindow( hWnd, iCmdShow )
UpdateWindow( hWnd )

'===============================================================================
' SOURCE PANORAMIC
'===============================================================================

pn_init(hWnd)

pn_button  1
pn_left    1, 50
pn_width  1, 450
pn_top    1, 50
pn_height  1, 50
pn_caption 1, "Un gros bouton"

'===============================================================================
' BOUCLE ACTIVE DE TRAITEMENT D'EVENEMENTS
'===============================================================================

while( GetMessage( @wMsg, NULL, 0, 0 ) <> FALSE )
TranslateMessage( @wMsg )
DispatchMessage( @wMsg )
wend
function = wMsg.wParam

end function

A noter qu'on a 2 fenêtres : une intitulée "PANORAMIC V 1.0 alpha" et une intitulée "ESSAI_DLL".

Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





Utilisation de PANORAMIC.DLL avec FreeBASIC Empty
MessageSujet: Re: Utilisation de PANORAMIC.DLL avec FreeBASIC   Utilisation de PANORAMIC.DLL avec FreeBASIC Empty

Revenir en haut Aller en bas
 
Utilisation de PANORAMIC.DLL avec FreeBASIC
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème avec FreeBasic.
» Des dlls compilées a la demande en FreeBasic, avec l'appel
» BDR.dll: utilisation simultanée avec KGF.dll
» Y a t il des utilisateurs de ...
» évènement USER_EVENT(freebasic DLL)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: