Bonjour,
Je tente de créer une DLL en C++ permettant de gérer les authentifications sous Windows. J'utilise l'outil Visual Studio Command Prompt (2010)
Pour cela, j'ai décidé d'utiliser la fonction LogonUser contenu dans la librarie "Windows.h".
Lors de la compilation, je n'ai pas d'erreur, et je génère un fichier obj. (j'utilise la commande " cl /LD /c authenticate.cpp ")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 #include <windows.h> extern "C" bool __declspec(dllexport) _stdcall authenticate(LPCSTR logon, LPCSTR domain, LPCSTR password) { HANDLE token; return LogonUser(logon, domain, password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, &token); }
Je tente alors de réaliser un link pour créer la dll mais j'ai une erreur à ce moment : LNK 2019 : unresolved external symbol __imp__LogonUserA@24. (j'utilise la commande " link /DLL authenticate.obj ")
De souvenir, sous C# la fonction était contenu dans la dll adviapi32.dll. J'ai tenté d'ajouter la dll à mon link, mais j'ai le message "LNK1107: invalid or corrupt file: cannot read at 0x288 (" link /DLL "C:\Windows\system32\advapi32.dll" authenticate.obj ")
En recherchant sur les différents sites, j'aurais oublié d'ajouter la librairie advapi32.lib dans mon link.
En faisant ceci, j'ai un autre message LNK1136: invalid or corrupt file. (" link /DLL advapi32.lib authenticate.obj ")
À ce moment là, je n'arrive pas à voir d'où pourrait venir le soucis. De base, je n'ai pas la librairie advapi32.lib. J'ai dû la télécharger, et placé dans le même répertoire que le code et le fichier obj.
Savez vous si l'erreur viendrait de mon code ou d'une erreur au niveau des commandes de compilation ou de link ou autre ?
Merci d'avance,
Cordialement,
Thybang
Partager