не является приложением Win32

Страницы: 1
RSS
не является приложением Win32
 
Робот на Луа использует dll на С++
В версии КВИКа 7 всё работает как надо, в версии квика 8 выдаёт ошибку:

error loading module 'socket.core' from file 'C:\Program Files (x86)\Lua\5.1\clibs\socket\core.dll': не является приложением Win32.

Как с этим бороться?
 
Нельзя грузить 32-битную длл в 64-битный процесс, делайте 64-битную.
 
Я в этом плохо соображаю. Надо просто перекомпилировать в Visual Studio?
 
В общем да, насколько это получится без танцев с бубном - от прямизны рук автора зависит.
 
Вот здесь подробно написано что как делать, какие свойства в проекте настраивать
https://quik2dde.ru/viewtopic.php?id=18

И есть готовый пример dll, компилируемой в 32 и 64 битные варианты
Можно на основе того проекта сделать, просто заменить файлы с исходниками, переименовать файлы проекта при надобности и имя выходного файла. А проекты уже настроены как надо
 
Конкретно по либе luasocket. Сорец уже содержит солюшен для студии с поддержкой 32 и 64 бит. С другой стороны, там конфиг по дефолту заточен на луа 5.3, но есть возможность перенастроить в 5.1. Чтобы ее собрать, надо отредактировать Lua.props в основном каталоге, в частности, LUAV поставить в 5.1 и последующие макросы исправить на свои пути, где искать заголовки луа и библиотеку импорта. Затем, в режиме 5.1 там косячок имеется, файл src/compat.c не включен в компиляцию и линкер потом не находит функции из него, так что его надо вручную добавить в оба проекта солюшена. Если не в новых студиях компилировать, еще придется немного там с версиями тулчейнов помудрить (ручками в файлах vsxproj). И в общем все, собирается после этого.
Страницы: 1
Читают тему
Наверх