chargement de DLL dans une fonction utilisateur

Le
Eric Belhomme
Bonjour,

J'ai écrit une dll qui contient des fonctions utilisateur en c. Cette dll
me sert en fait de wrapper pour appeler les méthodes contenues dans une
autre dll. Cette seconde dll est chargée dynamiquement par la 1ere via
l'API win32 GetProcAddress().

Sur ma machine de test (enviromenent MSDE2) cela fonctionne correctement :
la dll contenant les fonctions utilisateur charge corretement la seconde
dll et lui passe bien les paramètres passés depuis mon script SQL.

En revanche, sur mon serveur de pré-prod (Windows 2000 server + MSSQL 2000
standard edition) échoue à charger la dll dynamique et me retourne une
erreur "fichier non présent" !
Evidemment le fichier a bien été copié sur le serveur, j'ai tenté de le
mettre dans binn, dans system32, mais rien n'y fait, j'obtient toujours un
code d'erreur 126 !

Le paramétrage des serveurs SQL me semble identique entre mon intance MSDE
et mon instance SQLSERVER (compte système local) et je n'ai rien trouvé
dans l'aide en ligne qui pourrait expliquer pourquoi le serveur SQL est
incapable de voir ma dll (j'ai aussi vérifié les droits NTFS sur cette
dernière, elle est accessible en contrôle total pour tout le monde)

Meric pour votre aide !

--
Rico
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Eric Belhomme
Le #11854861
Eric Belhomme news::

juste un complément d'information : j'ai tracé les accès fichier avec
l'outils "filemon" de sysinternals et cela me laisse perplexe :

18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Length: 135258
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Length: 135258
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS

d'après ces logs, la dll a bien été chargée, pourtant le ma conction
presiste à me retourner un handle NULL à la suite de l'appel à
LoadLibrary avec un code d'erreur à 126 !

--
Rico
Gilles TOURREAU
Le #11854851
Le Sat, 30 Jun 2007 19:09:37 +0200, Eric Belhomme

Eric Belhomme news::

juste un complément d'information : j'ai tracé les accès fichier avec
l'outils "filemon" de sysinternals et cela me laisse perplexe :

18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Length: 135258
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Length: 135258
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS
18:45:30 sqlservr.exe:2204 QUERY INFORMATION D:servicescentera
libCenteraIcsb.dll SUCCESS Attributes: A
18:45:30 sqlservr.exe:2204 OPEN D:servicescentera
libCenteraIcsb.dll SUCCESS Options: Open Access: Execute
18:45:30 sqlservr.exe:2204 CLOSE D:servicescentera
libCenteraIcsb.dll SUCCESS

d'après ces logs, la dll a bien été chargée, pourtant le ma conction
presiste à me retourner un handle NULL à la suite de l'appel à
LoadLibrary avec un code d'erreur à 126 !




L'erreur 126 peut être aussi provoqué si une DLL dépendante de la DLL
chargé n'a pas été trouvé. Etes-vous sûr que toute l'arborescence des DLL
dépendantes est bien présente ?

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Eric Belhomme
Le #11854841
"Gilles TOURREAU" news::

L'erreur 126 peut être aussi provoqué si une DLL dépendante de la DLL
chargé n'a pas été trouvé. Etes-vous sûr que toute l'arborescence des
DLL dépendantes est bien présente ?



en plein dans le mille ! c'etait bien une dépendance qui manquait sur mon
serveur de pré-prod ! Merci pour le coup de main :)

--
Rico
Publicité
Poster une réponse
Anonyme