K8055 Velleman

Sphinx_benzine Messages postés 10 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 27 mai 2009 - 27 mai 2009 à 16:12
cs_hstar Messages postés 1 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 8 avril 2010 - 8 avril 2010 à 14:33
Bonjour à tous ,

Je me permet de vous demander votre aide car je ne suis pas très doué. ^^

J'explique donc mon problème.

Je voudrais connecter une plaquette USB velleman K8055 , je dispose des dll necessaire.
Pour cela, si je comprends bien, je dois associé la dll dans mon fichier cpp.

Cependant, je ne vois pas comment faire ...

il y a t il une commande a taper avec le nom de la dll ?

Merci d'avance de votre aide.

6 réponses

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
27 mai 2009 à 18:01
Tu dits que tu n'es pas doué, on va plutot dire que tu es débutant.

quel est ton environnement : tu utilises quel logiciel pour compiler.

As-tu des fichiers lib avec les dll ?
0
cs_beg0 Messages postés 51 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 13 mars 2011 1
27 mai 2009 à 18:49
salut,
Il y a plein de façon d'utiliser une DLL dans un programme... Comme j'ai aucune envie de toutes les énumérer, je vais te demander plus de précisions...
Tu disposes du  fichier .h  associé ? du fichier objet associé ( .lib, .a, ca dépend de ce que t'utilise pour programmer)
tu utilises quoi pour programmer (me repond pas le c++... je veux un nom de logiciel genre Code::Blocks, VC++... ) ?

Sinon t'as essayer google ?? parce que moi je tape "link DLL c++" et le 1er lien correspond a ce que tu veux faire (les autres aussi d'ailleurs !)

http://www.google.fr/search?hl=en&rlz=1G1GGLQ_FRFR253&q=link+DLL+c%2B%2B&btnG=Search

Pour ma curiosite personelle, Tu n'as pas de pilote a installer pour utiliser une plaquette en USB ? juste une DLL ? (question ouverte, les autres vous avez le droit de repondre xD)

Cordialement
0
Sphinx_benzine Messages postés 10 Date d'inscription mardi 17 février 2009 Statut Membre Dernière intervention 27 mai 2009
27 mai 2009 à 20:03
Merci pour vos réponses ,

et bien pour vous répondre , j'utilise Code::Blocks par défaut ... c'est celui qui me semblant le plus facile à trouver ^^

Donc avec la plaquette Usb je dispose donc de la Dll K8055D.DLL mais malhreusement je ne trouve pas de fichier .lib

Pour le moment je suis encore au point de départ, après si j'y arrive, je vais essayer de faire une interface graphique.

Le but de mon message est que je voudrais y connecter des capteurs pour faire une station météo homemade javascript:Insert_Emoticon('/imgs2/smile_cool.gif');

l'avantage de cette carte est qu'elle est détectée par windows !

un grand merci pour vos réponses et réponses futures javascript:Insert_Emoticon('/imgs2/smile_tongue.gif');
0
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
27 mai 2009 à 21:48
Connais-tu les fonctions et leur prototypes ? (de cette dll)

Il va falloir que tu te documentes sur LoadLibrary  et GetProcAddress pour utiliser les fonctions de la dll.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_beg0 Messages postés 51 Date d'inscription lundi 17 janvier 2005 Statut Membre Dernière intervention 13 mars 2011 1
28 mai 2009 à 01:16
hum.... ou alors tu trouves le .lib et le .h correspondant...
par ici par exemple ... http://www.velleman.be/downloads/files/downloads/k8055_vc2005.zip

tu copies les fichiers k8055D_C.h k8055D_C.lib et k8055D_C.dll dans le repertoire de ton application

Dans code::Blocks, une fois que t'as cree ton projet, tu vas dans [project]->[build options]->[linker settings]
A gauche tu selectiones "DEBUG" et tu cliques sur [ADD]
tu rentres "./K8055D_C.lib"
tu fais la meme chose mais en selectionnant "RELEASE"

Ca y est ta DLL est "liee" a ton application

Pour utiliser les fonctions dans ton programme, il te "suffit" d'inclure le fichier K8055D_C.h
#include "K8055D_C.h"

sauf que apparament, pour Microsoft et pour Borland, le type bool fait parti du standard C (a bon!) et que le type par defaut est void et pas int

Comme moi gcc me faisait chier a la compiler j'ai modifie le fichier .h comme ca

#ifdef __cplusplus
extern "C" {
#endif

#define FUNCTION __declspec(dllexport)

FUNCTION long __stdcall OpenDevice(long CardAddress);
FUNCTION void __stdcall CloseDevice();
FUNCTION long __stdcall ReadAnalogChannel(long Channel);
FUNCTION void __stdcall ReadAllAnalog(long *Data1, long *Data2);
FUNCTION void __stdcall OutputAnalogChannel(long Channel, long Data);
FUNCTION void __stdcall OutputAllAnalog(long Data1, long Data2);
FUNCTION void __stdcall ClearAnalogChannel(long Channel);
FUNCTION void __stdcall ClearAllAnalog();
FUNCTION void __stdcall SetAnalogChannel(long Channel);
FUNCTION void __stdcall SetAllAnalog();
FUNCTION void __stdcall WriteAllDigital(long Data);
FUNCTION void __stdcall ClearDigitalChannel(long Channel);
FUNCTION void __stdcall ClearAllDigital();
FUNCTION void __stdcall SetDigitalChannel(long Channel);
FUNCTION void __stdcall SetAllDigital();
FUNCTION int __stdcall ReadDigitalChannel(long Channel);
FUNCTION long __stdcall ReadAllDigital();
FUNCTION long __stdcall ReadCounter(long CounterNr);
FUNCTION void __stdcall ResetCounter(long CounterNr);
FUNCTION void __stdcall SetCounterDebounceTime(long CounterNr, long DebounceTime);

FUNCTION void __stdcall Version();
FUNCTION long __stdcall SearchDevices();
FUNCTION long __stdcall SetCurrentDevice(long lngCardAddress);

#ifdef __cplusplus
}
#endif

Sinon... tu peux toujours utiliser LoadLibreary et GetProcAddress xD
0
cs_hstar Messages postés 1 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 8 avril 2010
8 avril 2010 à 14:33
Bonjour à tous !

Tout d'abord je m'excuse de déterrer un topic ouvert il y a bientôt 1 an.

A priori, je suis dans le même cas que Sphinx_benzine, seulement j'utilise Visual C++ 2008 express.

Je vous explique le principe du projet. Je dois recevoir les données de cette carte, les afficher sur une IHM et les envoyer à un poste serveur.

Concernant la communication avec ne serveur, aucun souci, seulement je n'arrive pas à inclure le fichier K8055D_C.dll.

Le K8055D_C.h est inclue dans les fichiers entête, le K8055D_C.lib à été ajouté dans l'éditeur de liens (en entrée).


Je ne trouve pas comment déclarer l'inclusion de la dll dans mon fichier Form1.h, ce qui implique que je ne peux pas me connecter à la carte, ni y récupérer les données.



Pouvez vous m'aider?
0
Rejoignez-nous