В MingW отсутствуют некоторые функции из Win32 Crypto API - PullRequest
0 голосов
/ 16 декабря 2011

Мне нужно использовать некоторые функции из Win32 Crypto API, такие как CryptQueryObject. Проблема в том, что мне также нужно скомпилировать мою программу с MingW, а в криптографической библиотеке отсутствуют некоторые нужные мне функции, например, вышеупомянутый CryptQueryObject. Я попытался скопировать соответствующие определения заголовка C, так что теперь программа компилируется, но во время компоновки происходит сбой с неопределенными ошибками ссылок (так как crypt32.dll mingw не реализует некоторые функции). Я пытался установить связь с C: \ Windows \ System32 \ crypt32.dll, но он по-прежнему возвращает ошибки связывания.

Есть ли способ использовать весь Crypto API в mingw?

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

Вам необходимо динамически связываться с crypt32.dll. Вы можете сделать это во время выполнения используя функции Win32 API LoadLibrary + GetProcAddress или во время компиляции с использованием библиотеки импорта .

Для привязки во время выполнения MSDN имеет хороший пример .

РЕДАКТИРОВАТЬ: Если вам нужен набор функций API, которых нет в заголовках MinGW, перейдите к библиотеке импорта.

1 голос
/ 18 декабря 2017

У меня была такая же проблема. Загрузите и установите Windows SDK .

Теперь позвоните компоновщику:

gcc -L"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.14393.0\um\arm" -o "Test"  ./main.o -lcrypt32
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...