Написал собственную библиотеку для работы с Quik через lua. На компьютере, где велась разработка (Win7), все работает отлично. На другом компьютере с тем же квиком (WinServer 2012R2) получаю ошибку "error loading module 'MyDll' from file '.\MyDll.dll':The specified module could not be found." Проект собирал с конфигурацией "Release", "Win32", "Runtime libriry = Multi-threaded". Прошелся программой Dependency Walker - почти все зависимости есть (). Тот же release на компьютере, где писалась библиотека работает на ура. На сервере устанавливал vcredist_x64.exe и vcredist_x86.exe. Что еще я не сделал или сделал не так?
Пользователь
Сообщений: Регистрация: 16.08.2015
09.09.2016 16:54:42
Добрый день. Пробовали зарегистрировать библиотеку в ОС?
Пользователь
Сообщений: Регистрация: 07.03.2015
09.09.2016 17:31:01
Цитата
Владимир написал: Добрый день. Пробовали зарегистрировать библиотеку в ОС?
Добрый день.
При попытке зарегистрировать вот такую ошибку получаю.
Владимир написал: Добрый день. Пробовали зарегистрировать библиотеку в ОС?
Добрый день.
При попытке зарегистрировать вот такую ошибку получаю.
Библиотека не регистрируется даже на рабочей машине. Правда с другой ошибкой. Но функционирует нормально. Проблема в чем-то другом.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
09.09.2016 18:13:56
1) Приводите код на lua как подключате библиотеку 2) Где лежит сама сделанная библиотека на машине, где она не работает?
Пользователь
Сообщений: Регистрация: 07.03.2015
09.09.2016 18:47:51
Цитата
swerg написал: 1) Приводите код на lua как подключате библиотеку 2) Где лежит сама сделанная библиотека на машине, где она не работает?
Как писать свои библиотеки на C++ для QLua
1. require("MyDll"); 2. В обоих случаях она лежит в корне квика
Статью читал. А также выполнил инструкции, касающиеся использования библиотеки на машине, отличной от той, где она писалась.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
09.09.2016 21:07:39
Картинка Dependency Walker - это на WinServer 2012R2 сделана? Кстати странно, что там есть msvcr80, если говорите, что Runtime libriry = Multi-threaded
Пользователь
Сообщений: Регистрация: 01.02.2015
10.09.2016 00:49:03
слишком много слов - сам файл! в студию!!!
Пользователь
Сообщений: Регистрация: 07.03.2015
10.09.2016 01:05:10
Цитата
swerg написал: Картинка Dependency Walker - это на WinServer 2012R2 сделана?
Да.
Цитата
swerg написал: Кстати странно, что там есть msvcr80, если говорите, что Runtime libriry = Multi-threaded
Цитата
тот самый написал: слишком много слов - сам файл! в студию!!!
Это все содержание. Первая строчка, единственная и она не работает.
Пользователь
Сообщений: Регистрация: 01.02.2015
10.09.2016 01:12:08
саму dll скиньте
Пользователь
Сообщений: Регистрация: 01.02.2015
10.09.2016 01:26:55
и?.... можно через
Пользователь
Сообщений: Регистрация: 30.01.2015
10.09.2016 08:35:45
проблема в том, что на компе нет библиотек, которые есть на компе разработчика. проверьте свою dll на зависимости на компе разработчика и пользователя. Потом установите у пользователя недостающие библиотеки среды разработчика. обычно это делается через манифест. читайте у майкрософт.
Кстати странно, что там есть msvcr80, если говорите, что Runtime libriry = Multi-threaded
Обратите внимание: у вас конфигурация, от которой вы показываете настройки, Debug, а библиотеку вы выбрали не debug для этой конфигурации. А потом может и вовсе собираете Release сборку, а что у вас там в конфигурации - никому не ведомо.
Вообще, конечно, если выложите сам файл dll - то можно будет предметнее сказать. Пока по картинкам видно, что настройки вашего проекта не вяжутся с показанными зависимостями.
Николай Камынин написал: проблема в том, что на компе нет библиотек, которые есть на компе разработчика.
Я собираю проект с опцией "Runtime libriry = Multi-threaded". Если верить описанию, то это должно избавить от проблемы с зависимостями.
Цитата
Николай Камынин написал: проверьте свою dll на зависимости на компе разработчика и пользователя.
Уже сделал. О чем писал в самом пером посте. С зависимостями все ок.
Цитата
swerg написал: Обратите внимание: у вас конфигурация, от которой вы показываете настройки, Debug, а библиотеку вы выбрали не debug для этой конфигурации.
Прошу прощения, что ввел в заблуждение.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 18:31:12
Для начала...
1. Убедиться, что на WinServer 2012R2 QUIK запущен, как 32-битное приложение 2. Убедиться, что на вышеуказанной ОС - есть следующие файлы:
VCRUNTIMEIME140.dll
api-ms-win-crt-runtime-I1-1-0.dll
3. Саму библиотеку - лучше скомпоновать с qlua.dll, а не с lua5.1.dll (если, конечно, собираетесь потом программировать на QLUA под QUIK )
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 18:50:16
Цитата
Дмитрий Минеев написал: Прошелся программой Dependency Walker - почти все зависимости есть (.
пожалуй, в слове "почти" - вся и проблема....
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 19:08:18
Цитата
swerg написал: Кстати странно, что там есть msvcr80, если говорите, что Runtime libriry = Multi-threaded
нет ничего странного когда скачаешь dll-ку - сам поймёшь...
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 19:15:40
Цитата
Дмитрий Минеев написал: Я собираю проект с опцией "Runtime libriry = Multi-threaded". Если верить описанию, то это должно избавить от проблемы с зависимостями.
уже хотелось бы почитать про это "описание" :)))
Цитата
Дмитрий Минеев написал: Уже сделал. О чем писал в самом пером посте. С зависимостями все ок.
вот ведь, лгунишка...
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 19:39:07
ну и напоследок, от старины Билла.... так сказать, для сведения о api-ms-win-crt-runtime-L1-1-0.dll Обращаю внимание, что использование данных "новшеств" от Микрософт и, соответственно, принуждение своих несчастных пользователей скачивать подобный api-ms-win-crt-runtime-L1-1-0.dll бред - заведомо тупиковый путь распространения своей QLUA-библиотеки.
IMHO советую компилировать и проверять свои системы в режиме совместимости с WinXP
Пользователь
Сообщений: Регистрация: 07.03.2015
12.09.2016 20:11:52
Цитата
тот самый написал: пожалуй, в слове "почти" - вся и проблема....
Возможно вы имели ввиду библиотеку vcruntime140.dll, потому как вашу я не нашел ни на одном компьютере, ни гугл ничего не знает про нее.
Цитата
тот самый написал: так сказать, для сведения о api-ms-win-crt-runtime-L1-1-0.dll
Знать бы еще, как она попала ко мне. :)
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 20:18:31
Цитата
Дмитрий Минеев написал: Возможно вы имели ввиду библиотеку vcruntime140.dll, потому как вашу я не нашел ни на одном компьютере, ни гугл ничего не знает про нее.
именно, так. Просто сообщения - не редактируются.
Цитата
Дмитрий Минеев написал: Вот тут та же библиотека, на машине, где она разрабатывалась . Не смотря на эту картину все работает.
не спорь.
Вобщем, Зайди в "Свойства проекта" в своей MSVS2015 (если я правильно понял...)
И заполни поля: Целевая платформа Минималная платформа и т. п.
Основное требование - чтоб в Dependency Walker - не было отсутствующих файлов. И тогда... всё срастётся.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 20:21:13
в крайнем случае - добавь эту ерунду - себе в Win2012 Server (наихудший вариант) по ранее приведённой ссылке:
выбрав Целевую операционную систему.
Пользователь
Сообщений: Регистрация: 07.03.2015
12.09.2016 20:23:29
Цитата
тот самый написал: Целевая платформа Минималная платформа и т. п.
тот самый написал: именно, так. Просто сообщения - не редактируются.
Эта библиотека на конечном комьпютере есть.
Пользователь
Сообщений: Регистрация: 07.03.2015
12.09.2016 20:26:13
Цитата
тот самый написал: Основное требование - чтоб в Dependency Walker - не было отсутствующих файлов. И тогда... всё срастётся.
Не срастается.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 20:31:28
Внимательно прочти о том, как заполняются ВСЕ поля в Свойствах Проекта!! И... заполни их уже наконец соответствующе.
Если, что - пересоздай новый проект (если какие-то поля там - только для чтения)
Кроме того, в Целевой платформе - НЕ может быть НИКАКИХ 8.1 - у тебя система Windows Server 2012. Стало быть, там должно быть - просто Windows
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 20:36:06
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 21:12:47
ну и?...
Пользователь
Сообщений: Регистрация: 07.03.2015
12.09.2016 21:30:30
Цитата
тот самый написал: Внимательно прочти о том, как заполняются ВСЕ поля в Свойствах Проекта!! И... заполни их уже наконец соответствующе.
Где прочитать, я так и не понял. Если речь идет о ссылке , то не совсем понятно, что нужно сделать. Создал новый проект
"Целевая платформа" не выбирается. Пробовал очищать поле "Версия целевой платформы" (потому, как там ничего не выбирается больше), а сейчас вообще пропал выбор "целевой платформы" и "Версии". Менял поле "Набор инструментов платформы" на "Visual Studio 2015 - Windows XP (v140_xp)". Результат тот же.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 21:40:14
Цитата
Дмитрий Минеев написал: Где прочитать, я так и не понял.
далее про Набор Свойств:
Цитата
Затем установите , чтобы получить набор инструментов v110_xp.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 21:43:28
Цитата
тот самый написал: далее про Набор Свойств: установите Visual Studio 2012 с обновлением 4, чтобы получить набор инструментов v110_xp.
т.е. раз стоит уже MSVS2015 - это уже не актуально. т.к.
Цитата
Дмитрий Минеев написал: "Набор инструментов платформы" на "Visual Studio 2015 - Windows XP (v140_xp)".
выбрано верно.
Остаётс только в самом верху - выбрать Windows - в качестве Целевой платформы. Без всяких версий.
Как это будет сделано - приведи полный скриншот Dependency Walker (после компиляции)
Пользователь
Сообщений: Регистрация: 07.03.2015
12.09.2016 21:50:05
Цитата
тот самый написал: Остаётс только в самом верху - выбрать Windows - в качестве Целевой платформы. Без всяких версий.
Разбираюсь почему пропал выбор...
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 21:53:13
в идеале - на выходе должен получится файл, как у квика - т.е. без всякой api-ms-win-crt-runtime-L1-1-0.dll-подобной хрени в Зависимостях.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 22:12:58
вот... схожая ситуация:
Вопрос: Программа, скомпилированная в Visual Studio 2013, не работает в Windows XP
В ОС Windows 7 Home Base 32 bit установлены Visual Studio 2008 Express и Visual Studio 2013 Ultimate. Простую консольную программу:
компилирую в Visual Studio 2008 и Visual Studio 2013 с многопоточной библиотекой времени выполнения(/MT), остальные параметры сред программирования по умолчанию.Релиз программы TestCppVS2008.exe нормально запускается в Windows XP, 7, 8, 8.1, а релиз программы TestCppVS2013.exe в Windows 7, 8, 8.1 запускается нормально, а при запуске в Windows XP дает сообщение, что TestCppVS2013.exe не является приложением Win32. Подскажите, пожалуйста, какие параметры Visual Studio 2013 нужно установить, чтобы программа нормально запускалась в Windows XP.Реальную программу нужно будет запускать в разных версиях Windows, включая и Windows XP. Тестовые проекты и исполняемые файлы прикрепил.
Ответ: Спасибо огромное, помогло. Свойства проекта – Свойства конфигурации – Общие – Набор инструментов платформы – выбрать Visual Studio 2013 - Windows XP (v120_xp) вместо Visual Studio 2013
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 22:30:16
либо.... попытаться найти и откатить это обновление в системе где установлена MSVS 2015:
Вопрос: Программа, скомпилированная в Visual Studio 2013, не работает в Windows XP
В ОС Windows 7 Home Base 32 bit установлены Visual Studio 2008 Express и Visual Studio 2013 Ultimate. Простую консольную программу:
Код
# include < iostream > # include < string > int main() {
setlocale(LC_ALL, "Russian" ); std::cout < < "Здравствуй, Мир!"
< < std::endl; std:: cin.get (); }
компилирую в Visual Studio 2008 и Visual Studio 2013 с многопоточной библиотекой времени выполнения(/MT), остальные параметры сред программирования по умолчанию.Релиз программы TestCppVS2008.exe нормально запускается в Windows XP, 7, 8, 8.1, а релиз программы TestCppVS2013.exe в Windows 7, 8, 8.1 запускается нормально, а при запуске в Windows XP дает сообщение, что TestCppVS2013.exe не является приложением Win32. Подскажите, пожалуйста, какие параметры Visual Studio 2013 нужно установить, чтобы программа нормально запускалась в Windows XP.Реальную программу нужно будет запускать в разных версиях Windows, включая и Windows XP. Тестовые проекты и исполняемые файлы прикрепил.
Ответ: Спасибо огромное, помогло. Свойства проекта – Свойства конфигурации – Общие – Набор инструментов платформы – выбрать Visual Studio 2013 - Windows XP (v120_xp) вместо Visual Studio 2013
Действительно заработало. После того, как выбрал Набор инструментов платформы = Visual Studio 2013 - Windows XP (v120_xp), получил ошибку "An Error has occurred while saving the edited properties listed below: One or more values are invalid. Value cannot be null. Parameter name: userSuppliedValue". В поле "Версия целевой платформы" указал "8.1", сохранил (после повторного открытия поля "Версия целевой платформы" и "Целевая платформа" пропали.
Дмитрий Минеев написал: В поле "Версия целевой платформы" указал "8.1", сохранил (после повторного открытия поля "Версия целевой платформы" и "Целевая платформа" пропали.
если правильно понимаю - 8.1 - там не должно быть.
Очевидно, Microsoft - в MSVS 2015 - сделала минимально поддерживаемой Осью не WinXP, что косвенно подтверждаетс таинственными пропаданиями настроек и некоторыми комментами в гугле.
Пользователь
Сообщений: Регистрация: 01.02.2015
12.09.2016 23:31:34
в любом случае, Целевая платформа - НЕ должна быть - 8.1. но, раз заработала - "будем посмотреть..."
я бы посоветовал запустить на виртуалке с отключенным обновлением быть может, и проблемы бы не возникло...
swerg написал: Обратите внимание: у вас конфигурация, от которой вы показываете настройки, Debug, а библиотеку вы выбрали не debug для этой конфигурации.
Прошу прощения, что ввел в заблуждение.
Ну так по-русски ж написано: "Библиотека врменеи выполнения - Многопоточный DLL". Т.е. вам вместе с вашей DLL в этом случае нужно таскать DLL-файлы от студии. Измените настройку-то.
И это, умоляю: поставьте английскую VisualStudio! ну это ж без слёз смотреть нельзя, да и вам сразу понятнее станет.