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 :

Problème appel API sur une dll


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut Problème appel API sur une dll
    bonjour,
    je cherche à dialoguer avec un XP-pen , il y a une dll fournie , l'appel à une fonction ce fait en VC avec
    Code : 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
    28
    29
    30
    31
    32
    33
    34
    35
     
    	enum EventType
    	{
    		EventType_Pen = 1,
    		EventType_Key = 2,
    		EventType_Eraser = 3,
    		EventType_Wheel = 4,
    		EventType_ALL = 0xfe
    	};
    	enum  PenStatus
    	{
    		PenStatus_Hover,				
    		PenStatus_Down,				
    		PenStatus_Move,				
    		PenStatus_Up,					
    		PenStatus_Leave				
    	};
    	enum KeyStatus
    	{
    		KeyStatus_Up,					
    		KeyStatus_Down					
    	};
    	typedef struct  tagDATAPACKET
    	{
    		EventType			eventtype;				//4
    		unsigned short		physical_key;			//2
    		unsigned short		virtual_key;			//	2
    		KeyStatus			keystatus;				//4
    		PenStatus			penstatus;				//4
    		unsigned short		x;						//2
    		unsigned short		y;						//2
    		unsigned short		pressure;				//2
    		short				wheel_direction;		//2
    		unsigned short		button;					//2
    	}DATAPACKET, *PDATAPACKET;
    j'ai essayé ceci qui ne fonctionne apparement pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	DATAPACKET est une Structure
    		EventType			est un  entier sur 4 octet										//enum eventtype				
    		physical_key		est un entier sans signe sur 2 octet							//unsigned short	
    		virtual_key			est un entier sans signe sur 2 octet							//unsigned short	
    		KeyStatus			est un  entier sur 4 octet										//enum keystatus				
    		PenStatus			est un  entier sur 4 octet										//enum penstatus				
    		x					est un entier sans signe sur 2 octet							//unsigned short	
    		y					est un entier sans signe sur 2 octet							//unsigned short	
    		pressure			est un entier sans signe sur 2 octet							//unsigned short	
    		wheel_direction		est un entier sur 2 octet										//short	
    		button				est un entier sans signe sur 2 octet							//unsigned short	
    	FIN
    	tagDATAPACKET est un DATAPACKET
    si vous avez des idées ...

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 949
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par styck007 Voir le message
    j'ai essayé ceci qui ne fonctionne apparemment pas :
    Ça ne veut rien dire.
    En quoi cela ne fonctionne pas d'autant plus que c'est une déclaration.
    Par ailleurs, pourquoi ne pas utiliser les énumérations dans cette déclaration.
    Quoiqu'il en soit, la déclaration serait plutôt celle ci
    Code : 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    EEventType est une Enumération
    	EventType_Pen		= 1
    	EventType_Key		= 2
    	EventType_Eraser	= 3
    	EventType_Wheel		= 4
    	EventType_ALL		= 0xfe
    FIN
     
    EPenStatus est une Enumération
    	PenStatus_Hover				
    	PenStatus_Down				
    	PenStatus_Move				
    	PenStatus_Up					
    	PenStatus_Leave	
    FIN
     
    EKeyStatus est une Enumération
    	KeyStatus_Up		
    	KeyStatus_Down
    FIN
     
    STTagDATAPACKET est une Structure
    	m_eVenttype est EEventType
    	m_nPhysical_key est entier sur 2
    	m_nVirtual_key est entier sur 2
    	m_eKeystatus est EKeyStatus
    	m_ePenstatus est EPenStatus
    	x est entier sur 2
    	y est entier sur 2
    	m_nPressure est entier sur 2
    	m_nWheel_direction est entier sur 2
    	m_nButton est entier sur 2
    FIN
     
    gstDATAPACKET est STTagDATAPACKET
    gnsysPDATAPACKET est entier système //Pointeur sur un STTagDataPacket

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut
    Bonjour
    merci Voroltinquo
    Par contre , on ne peut pas mettre une Enumération dans une structure apparement , j'avais essayé , il me colle une erreur ' est inconnu'
    ou alors , il y a un truc

    pour l'Enumération dans une structure , je viens de comprendre , cela ne fonctionne que dans la declaration globale de la fenêtre ...

  4. #4
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 563
    Par défaut
    Bonjour,

    C'est toujours la plais pour trouver les bons types quand on passe d'un langage à un autre...

    J'ai une idée : tu mets eventtype en entier sur 4 octets . Je ne serais pas parti sur ce type mais déjà en sans signe puis en réduisant en octets, voire 1 octet.

  5. #5
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 949
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par styck007 Voir le message
    pour l'Enumération dans une structure , je viens de comprendre , cela ne fonctionne que dans la declaration globale de la fenêtre ...
    En effet, j'aurais du préciser.
    Il est préférable de définir les structures, les énumérations, les combinaisons, les variables composées (bref, les types "complexes") dans la partie "Globale" (Initialisation du projet, d'une fenêtre ou d'une collection de procédure.)

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut
    j'ai essayé pas mal de chose , rien ne fonctionne , je suis depité
    le sdk est ici https://www.xp-pen.fr/developer
    c'est la fonction signRegisterDataCallBack , leur exemple en c# plante sur la dll , par contre elle fonctionne en C

  7. #7
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 949
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par styck007 Voir le message
    j'ai essayé pas mal de chose
    Lesquelles ?
    Rappel
    Le fichier dll obtenu via c# est un assemblage et non une dll

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 88
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Lesquelles ?
    Rappel
    Le fichier dll obtenu via c# est un assemblage et non une dll
    ils fournissent une dll et 3 sources d'exemple d'utilisation en C et C#

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/02/2017, 11h19
  2. Réponses: 1
    Dernier message: 17/02/2016, 16h29
  3. Problème appel fonction d'une DLL
    Par xEndLe dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 04/05/2012, 17h08
  4. appel en boucle sur une DLL
    Par kaygee dans le forum ASP
    Réponses: 9
    Dernier message: 29/05/2007, 14h51
  5. Problème appel JNI d'une dll via COM
    Par mfabien dans le forum C
    Réponses: 3
    Dernier message: 13/04/2007, 14h38

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