- Код: Выделить всё
Private Declare Function CryptAcquireContext Lib "advapi32.dll" Alias "CryptAcquireContextA" (ByRef phProv As Long, ByVal pszContainer As String, ByVal pszProvider As String, ByVal dwProvType As Long, ByVal dwFlags As Long) As Long
На некоторых машинах с ОС Windows XP — Vista — Seven (не зависит от разрядности и версии) при вызове CryptAcquireContext возвращает ноль.
GetLastDllError говорит об ошибке 127.
MSDN говорит, что 127 - это: ERROR_PROC_NOT_FOUND 127 (0x7F): The specified procedure could not be found.
Пример вызова:
- Код: Выделить всё
'Обозначения, отметил здесь чтобы понятно было, что передаётся
Key_Container = "Test"
Service_Provider = "Microsoft Base Cryptographic Provider v1.0"
PROV_RSA_FULL = 1
'Вызов
if CryptAcquireContext(hCryptProv, Key_Container, Service_Provider, PROV_RSA_FULL, 0) = 0 then MsgBox Err.GetLastDLLError 'Выдаст MsgBox "127" в проблемных случаях
Весь гугл прогулил и голову сломал, скорее всего туплю, но не могу понять, что означает данная ошибка в моем случае?
На большинстве машин код работает и как на зло - на моей тоже.
Только завтра смогу попасть на проблемные машины, сейчас вот пытаюсь повторить ошибку на своей.
Возникло предположение, что на тех машинах нарушена работа службы криптографии.
Отключал "Службы криптографии", пытался regsvr32.exe /u косвенные библиотеки криптографии, чтобы понять в этом ли проблема.
Все как на зло работает, кажется, что я не в ту степь лезу.
Ни у кого мыслей нету или может кто-нибудь сталкивался с подобной проблемой?