IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

CallbackFunc en Windev


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut CallbackFunc en Windev
    Bonjour,

    Je n'arrive pas a convertir une callback C++ vers WinDev.

    Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    typedef unsigned long EdsUInt32;
    typedef EdsUInt32 EdsObjectEvent;
    typedef struct __EdsObject* EdsBaseRef;
    typedef void EdsVoid;
     
     
    void TakePhoto()
    {
        EdsError err = EDS_ERR_OK;
        EdsCameraRef camera = NULL;
        EdsCameraListRef cameraList = NULL;
        EdsUInt32 count = 0;
     
    if (count > 0)
        {
            err = EdsSetObjectEventHandler(camera, kEdsObjectEvent_All, handleObjectEvent, NULL);
        }
    .....
    }
     
    static EdsError EDSCALLBACK handleObjectEvent(EdsObjectEvent event, EdsBaseRef object, EdsVoid * context)
    {
        if (event == kEdsObjectEvent_DirItemRequestTransfer)
        {
        }
    }

    handleObjectEvent peut être une procédure ?

    Comment la traduit-on en WinDev

    Merci pour le coup de pouce !

  2. #2
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Voici mon code qui ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    API(DllName,"EdsSetObjectEventHandler",cameraRef,"kEdsObjectEvent_All",handleObjectEvent,Null)
     
    PROCEDURE handleObjectEvent(nMyEvent entier sans signe sur 4 octets, nMyObject est un entier, nMyContext est un entier système )
     
    SI nMyEvent = kEdsObjectEvent_DirItemRequestTransfer ALORS
    	fCrée("C:\Mes Projets\SDK\Exe\2.txt")
    	Trace("EVENT !!!!")
    FIN
    Je pense que la procédure handleObjectEvent n'est pas exécutée...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Points : 487
    Points
    487
    Par défaut
    Bonjour,

    J'avoue ne pas avoir lu votre code en détail, cependant lorsqu'on souhaite passer une procédure de callback à une fonction, on passe l'adresse de celle ci avec l'opérateur &.

    API(DllName,"EdsSetObjectEventHandler",cameraRef,"kEdsObjectEvent_All",&handleObjectEvent,Null)

    Cordialement,

    Madsl@nD

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 201
    Points : 48
    Points
    48
    Par défaut
    Bonjour Madsl@nD

    J'ai même essayé & mais l'évènement kEdsObjectEvent_DirItemRequestTransfer n'est jamais initialisé
    J'ai un trace en début de la procédure handleObjectEvent qui n'apparait pas non plus

    La procédure est une procédure globale... ou est-ce que je me trompe ?

    Merci pour votre aide !

Discussions similaires

  1. Multicast et Windev
    Par eblaise dans le forum Développement
    Réponses: 2
    Dernier message: 08/06/2004, 09h31
  2. PB de tables créées sous Windev
    Par Reynald dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/04/2004, 10h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo