Half-Life и Adrenaline Gamer форум

Всё об игре в Халф-Лайф и АГ
Текущее время: 26 апр 2024, 08:37

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 08 ноя 2015, 23:42 
Не в сети
Зарегистрирован:
12 июл 2015, 13:52
Последнее посещение:
14 дек 2017, 20:11
Сообщения: 12
Доброго. :)
Был написан модуль с библиотекой cURL под AMXX.
Скомпилировался всё отлично. Начинаю запуск сервера и пишет вот такое:

[AMXX] Module is not a valid library (file "cstrike\addons\amxmodx\modules\protection_amxx.dll")

Все либы и инклюды для cURL'a присутствуют. Была скомпилирована мною либка cURL'a версии 7.45.

Как исправить данную ошибку? :(
Если нужен будет проект, могу скинуть ссылочку.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 02:52 
Не в сети
Site Admin
Зарегистрирован:
01 июн 2010, 01:27
Последнее посещение:
22 апр 2024, 13:24
Сообщения: 6867
Привет!
Скорее всего здесь это случается в АМХХ:
Код:
bool CModule::queryModule()
{
...
   m_Handle = DLLOAD(m_Filename.c_str());      // load file
   if (!m_Handle)
   {
      m_Status = MODULE_BADLOAD;
      return false;
   }
DLL просто не загружается.
Код:
#define DLLOAD(path) (DLHANDLE)LoadLibrary(path)
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms684175%28v=vs.85%29.aspx
Цитата:
Return value

If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.

Вот тестовая программка для проверки загрузки DLL:
 
Скомпилена в аттаче.
Примеры использования:
Цитата:
>LoadLibraryTest.exe
Usage: LoadLibraryTest.exe <library file name> [function name]

>LoadLibraryTest.exe test.dll
Failed to load library: 0x0000007E.
The specified module could not be found.

>LoadLibraryTest.exe user32.dll
Library loaded successfully.

>LoadLibraryTest.exe user32.dll GetWindow
Library loaded successfully.
GetWindow function address: 0x75B6926E.

>LoadLibraryTest.exe user32.dll GetWindowWrong
Library loaded successfully.
Failed to get GetWindowWrong function address: 0x0000007F.
The specified procedure could not be found.


Вложения:
LoadLibraryTest.7z [46.53 КБ]
Скачиваний: 158
Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 15:19 
Не в сети
Зарегистрирован:
12 июл 2015, 13:52
Последнее посещение:
14 дек 2017, 20:11
Сообщения: 12
Прошу прощения, но как воспользоваться данной программой?
При запуске программы, она сразу закрывается :(


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 17:07 
Не в сети
Аватара пользователя
Зарегистрирован:
21 мар 2012, 13:21
Последнее посещение:
27 дек 2023, 02:51
Сообщения: 165
А не лучше ли скомпилить модуль AMX сразу с cURL внутри?


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 17:17 
Не в сети
Зарегистрирован:
12 июл 2015, 13:52
Последнее посещение:
14 дек 2017, 20:11
Сообщения: 12
Я так и сделал)
Написал же "Был написан модуль с библиотекой cURL под AMXX."


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 18:03 
Не в сети
Аватара пользователя
Зарегистрирован:
21 мар 2012, 13:21
Последнее посещение:
27 дек 2023, 02:51
Сообщения: 165
Я имею ввиду статическую линковку.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 18:11 
Не в сети
Зарегистрирован:
12 июл 2015, 13:52
Последнее посещение:
14 дек 2017, 20:11
Сообщения: 12
Можно ли по подробней, не особо понял.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 18:23 
Не в сети
Аватара пользователя
Зарегистрирован:
21 мар 2012, 13:21
Последнее посещение:
27 дек 2023, 02:51
Сообщения: 165
Укажи линковщику, что нужен libcurl.

В Linux это делается добавлением параметра -lcurl для gcc, либо что-то вроде:
Код:
-static-libgcc /usr/lib/i386-linux-gnu/libcurl.a


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 18:25 
Не в сети
Зарегистрирован:
12 июл 2015, 13:52
Последнее посещение:
14 дек 2017, 20:11
Сообщения: 12
ImperNik писал(а):
Укажи линковщику, что нужен libcurl.

В Linux это делается добавлением параметра -lcurl для gcc, либо что-то вроде:
Код:
-static-libgcc /usr/lib/i386-linux-gnu/libcurl.a
Дело в том, что я компилирую под Win и пишу в VS 13.


Вернуться к началу
 Профиль 
  
 Заголовок сообщения: Re: Ошибка при загрузке модуля [AMXX]
СообщениеДобавлено: 09 ноя 2015, 18:26 
Не в сети
Аватара пользователя
Зарегистрирован:
21 мар 2012, 13:21
Последнее посещение:
27 дек 2023, 02:51
Сообщения: 165
Ситуация аналогичная. Всё равно нужно указать линковщику, что нужен libcurl. Это делается в настройках проекта, потребуется в настройках сменить динамическую линковку на статическую и возможно найти libcurl.a.


Вернуться к началу
 Профиль 
  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB