Chargement de DLL

zibo3 Messages postés 57 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 7 octobre 2009 - 1 juin 2005 à 12:07
zibo3 Messages postés 57 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 7 octobre 2009 - 1 juin 2005 à 15:03
Bonjour,



J'ai un gros problème avec le chargement dynamique d'une de mes DLL. En
effet dans mon programme je fais un loadlibrary d'une de mes DLL. Quand
je l'execute sur Win2003 serveur cela fonctionne très bien et avec la
même configuration sous WinXP j'ai une erreur d'"acces denied".



J'aurais aimé savoir si quelqu'un avait une idée à me proposer. Je sais
que quand on lance un executable, windows peut nous prevenir si des dll
pour son bon fonctionnement sont inexistante. Mais pour une DLL cela
est impossible ou alors je n'ai pas trouvé le moyen. C'est une piste à
laquelle j'ai pensé mais ca n'est pas forcement la solution à mon
probleme.



Je vous remercie tous par avance pour votre aide.



Steve

2 réponses

cs_thedestiny Messages postés 56 Date d'inscription samedi 3 juillet 2004 Statut Membre Dernière intervention 30 juin 2008
1 juin 2005 à 14:06
Tu as essayé en chargeant la DLL avec les debug token ?

Fonction :
BOOL SetDebugPrivileges(VOID)
{
DWORD dwPID;
HANDLE hProcess;
HANDLE hToken;
LUID Luid;
TOKEN_PRIVILEGES tpDebug;

dwPID = GetCurrentProcessId(); if ((hProcess OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID)) NULL) return FALSE;
if (OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, &hToken) == 0) return FALSE;
if ((LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &Luid)) == 0) return FALSE;

tpDebug.PrivilegeCount = 1;
tpDebug.Privileges[0].Luid = Luid;
tpDebug.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

if ((AdjustTokenPrivileges(hToken, FALSE, &tpDebug, sizeof(tpDebug), NULL, NULL)) == 0) return FALSE;
if (GetLastError() != ERROR_SUCCESS) return FALSE;

CloseHandle(hToken);
CloseHandle(hProcess);

return TRUE;
}

Apparemment tu ne sembles pas avoir les droits charger la DLL.
Si même avec ca ca ne marche pas, il faudra poster le code de chargement de la librairie et si possible, une petite description de la DLL :)

Amicalement,
The Destiny
0
zibo3 Messages postés 57 Date d'inscription mercredi 18 juin 2003 Statut Membre Dernière intervention 7 octobre 2009
1 juin 2005 à 15:03
Rebonjour,



merci pour ta réponse mais j'ai résolu le problème tout seul en fait,
c'était à peu près ce que je pensais, en fait mon appli n'avait pas les
droit d'accés au repertoire system32 dans lesquels il y avait des DLLs
utilisées par ma DLL.
0