Comment résoudre getprocAddress retourne NULL quand GetLastError retourne Error Code 0 : "opération réussie" pour toutes les fonctions de bcrypt.dll

Christophe 0 Points de réputation
2026-09-14T08:34:23.8366667+00:00

J'aimerai utiliser les fonctions de bcrypt.dll en c++

Je charge la bibliothèque avec LoadLibraryA et je récupère les adresses des fonctions avec GetProcAddress.

NTSTATUS (WINAPI *lpfBCryptOpenAlgorithmProvider) (
		   BCRYPT_ALG_HANDLE*,
		   LPCWSTR,
		   LPCWSTR,
		   ULONG);
	
	hInstbcrypt = LoadLibraryA("bcrypt.dll");

		if ( hInstbcrypt != NULL ) 
		{ 
			lpfBCryptOpenAlgorithmProvider =
				(NTSTATUS (WINAPI *)(BCRYPT_ALG_HANDLE*, LPCWSTR, LPCWSTR, ULONG))
				GetProcAddress(hInstbcrypt, "BCryptOpenAlgorithmProvider");

		 	if ( lpfBCryptOpenAlgorithmProvider == NULL )
			{
				ErrorCode = GetLastError();
				FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, ErrorCode, MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH), Message, 2046, NULL);
			} 
		}
...

Le problème c'est que GetProcAddress retourne NULL et que GetLastError retourne 0: "opération réussie".

Comment résoudre ce problème ?

J'ai aussi essayé de lier bcrypt.lib au projet, mais le linker ne trouve pas les fonctions :

[Lieur Erreur] Error: Externe 'BCryptOpenAlgorithmProvider' non résolu.

Quelqu'un a-t-il une solution ?

Technologies de développement | C++
Technologies de développement | C++

Langage de programmation général de haut niveau, créé en tant qu'extension du langage de programmation C, qui possède des caractéristiques orientées objet, génériques et fonctionnelles, ainsi que des fonctions de manipulation de la mémoire de bas niveau.

0 commentaires Aucun commentaire

Votre réponse

Les réponses peuvent être marquées comme « Acceptées » par l’auteur(e) de la question et « Recommandées » par les modérateurs, ce qui aide les utilisateurs à savoir que la réponse a résolu le problème de l’auteur(e).