Problème de dll (chargement)

Résolu
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006 - 11 nov. 2006 à 00:01
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006 - 16 nov. 2006 à 18:22
Bonjour

je suis actuelement en train de développer un programme en C.
Ce programme controle une carte d'acquisition analogique pour faire des mesures de tensions.

cette carte à besoin, pour etre utilisé d'une dll.

cette dll doit etre chargé au début du programme pour pouvoir utiliser les fonctions associés à la carte.

le problème est que le programme refuse de me charche cette dll.

j'ai tout bien fait comme l'exemple du manuel et pourtant, ça veut pas.

HINSTANCE dllHandle=NULL;
dllHandle=LoadLibrary("PCILabNT.dll");

après le LoadLibrary, dllHandle est != de NULL en théorie, et je peut utilise la carte; or là, il reste NULL.

PCILabNT.dll se trouve dans le dossier où je lance l'exe.

Je ne sais plus quoi faire.
J'ai essayé un GetLastError, il me retourne 0 (plutot étrange).

Merci de vos réponse.

Nikolas13

<!-- / message -->

11 réponses

cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
16 nov. 2006 à 18:22
bonjour

ça y est, j'ai enfin réussi à charger la dll.
le problème venait de la carte, elle était pas trop bien instalé, et si la dll ne se charchait pas, c'est parce qu'elle n'arrivait pas à initialiser quelquechose sur la carte.

merci de votre aide.
Problème résolu.

Nikolas13
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 nov. 2006 à 00:35
Faudrait avoir le code de la DLL voir si c'est elle qui refuse dans son DllMain(), peut-etre ne trouve-t-elle pas ce dont elle a besoin.

ciao...
BruNews, MVP VC++
0
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
11 nov. 2006 à 00:40
j'ai pas le code qui a servi à créer la DLL, il s'agit d'une DLL fournit avec une carte d'acquisition analogique, elle était fournie avec la carte.

Nikolas13
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 nov. 2006 à 00:50
Tu as au moins une doc sur la DLL ?
Voir aussi si ce n'est pas un ActiveX cette DLL.

ciao...
BruNews, MVP VC++
0

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

Posez votre question
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
11 nov. 2006 à 00:56
non, j'ai pas de doc à proprement parler sur la DLL, j'ai juste la DLL et un petit manuel qui explique comment utiliser ses fonctions, mais pas plus de détails.
j'ai aussi un fichier exemple qui permet de tester la carte ainsi que la manière d'utilise la DLL.

j'ai recopier l'exemple à la lettre et ça marche pas.
même l'exemple ne marche pas (il ne charge pas la DLL non plus), c'est pour dire.

Nikolas13
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 nov. 2006 à 01:01
Si tu respectes exact l'exemple, reste plus qu'à vérifier que la dll est bien trouvée, mets provisoirement le chemin en dur dans LoadLibrary().

ciao...
BruNews, MVP VC++
0
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
11 nov. 2006 à 01:06
j'ai essayé de mettre le chemin en dur dans LoadLibrary() mais ça ne change rien, la DLL ne se charge pas.

Le problème, c'est que même m'exemple fournit avec la carte ne marche pas, m^me si je le modifie pour prendre le chemin en dur.

Nikolas13
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 nov. 2006 à 01:14
Reste plus qu'à tracer l'exécution au debugger pour voir quand DllMain branche vers sortie != 1, bon courage.

ciao...
BruNews, MVP VC++
0
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
11 nov. 2006 à 01:19
et bien, je sens que je vais m'amuser !
je vais voir comment faire ça, mais c'est vraiment bizare, surtout que GetLastError() me renvoi 0, soit "Opération réussi" alors que mon Handle reste à NULL.

bon, je vais voir au debug

Nikolas13
0
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
11 nov. 2006 à 11:43
ta dll ne sert-elle pas d'une autre dll? il te faut un outil pour le voir ( view dependencies) mais en général on a le message. il faudrait voir si le problème ne vient du hardware et qu'au moment où on charge la dll, il n'y a pas d'initialisation de la carte.
As-tu déjà vu fonctionner ta carte, il se peut qu'elle soit défaillante.
le handle NULL est peut -être le signe que la dll est bien chargée mais que l'init ne se fait pas (d'où un getlasterror à 0)
à part l'exemple, as-tu un programme compilé de test pour ta carte
louis14
0
cs_Nikolas13 Messages postés 7 Date d'inscription vendredi 10 novembre 2006 Statut Membre Dernière intervention 16 novembre 2006
11 nov. 2006 à 13:22
bonjour

non, je n'ai jamais vu fonctionner la carte, justement, c'est à moi de le faire.
en théorie, d'après le manuel, cette DLL ne sert pas d'autre DLL, elle est seule.
sinon, à part l'exemple, j'ai rien pour tester la carte.
c'est posible que l'init ne se fasse pas et donc error=0 et handle=NULL
donc, soit c'est un problème de DLL, soit d'hardware.


Nikolas13
0
Rejoignez-nous