![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
peperoni |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 17.11.2013 Пользователь №: 3979 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Подскажите как подключать динамически стандартные DLL Windows и использовать вызовы к функциям Windows API?
Полагаю нужно что-то прописать в файле проекта, но что кокретно так и не понял. Например, как заставить в QtCreator скомпилиться и запуститься простенькому консольному приложению взятому из MSDN, использующего CryptoAPI. Примерчик просто выводит список доступных криптопровайдеров на консоль. Проверил его в VisualStudio - все рабоате, в QtCreator бился с LIBS += ..., но так и не победил. Нужно под MinGW. Выдает ошибку E:\PROG\Qt\untitled1\main.c:-1: ошибка: undefined reference to `CryptEnumProviders' Вызовы к функция CryptoAPI в дальнейшем планируется использовать в программе написанной с ипользованием библиотеки Qt.
|
|
|
![]() |
kuzulis |
![]()
Сообщение
#2
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 393 Регистрация: 29.6.2009 Пользователь №: 862 Спасибо сказали: 36 раз(а) Репутация: ![]() ![]() ![]() |
Цитата undefined reference to `CryptEnumProviders' Эмм.. Вообще-то нету у MinGW этой функции, она не декларирована в его заголовках, следовательно ты ничего не прилинкуешь в этом случае. Тебе нужно использовать QLoadLibrary для подгрузки Advapi32.dll, найти там свою ф-ю CryptEnumProviders() и юзать ее. Хотя.. Можешь попробовать сделать LIBS += lAdvapi32 и посмотреть что будет.. ЗЫ: Хотя, сигнатура этой ф-ции присутствует в MinGW-шном файле libadvapi32.a. Тогда, ИМХО, просто объяви ее у себя в коде и слинкуйся с lAdvapi32.. В этом случае #include <Wincrypt.h> не нужен.. ![]() Сообщение отредактировал kuzulis - 19.11.2013, 14:05 |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 22:13 |