Написал собственную библиотеку для работы с 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 - почти все зависимости есть (http://take.ms/6Knry). Тот же release на компьютере, где писалась библиотека работает на ура. На сервере устанавливал vcredist_x64.exe и vcredist_x86.exe. Что еще я не сделал или сделал не так?
Картинка Dependency Walker - это на WinServer 2012R2 сделана? Кстати странно, что там есть msvcr80, если говорите, что Runtime libriry = Multi-threaded
проблема в том, что на компе нет библиотек, которые есть на компе разработчика. проверьте свою dll на зависимости на компе разработчика и пользователя. Потом установите у пользователя недостающие библиотеки среды разработчика. обычно это делается через манифест. читайте у майкрософт.
Обратите внимание: у вас конфигурация, от которой вы показываете настройки, Debug, а библиотеку вы выбрали не debug для этой конфигурации. А потом может и вовсе собираете Release сборку, а что у вас там в конфигурации - никому не ведомо.
Вообще, конечно, если выложите сам файл dll - то можно будет предметнее сказать. Пока по картинкам видно, что настройки вашего проекта не вяжутся с показанными зависимостями.
Николай Камынин написал: проблема в том, что на компе нет библиотек, которые есть на компе разработчика.
Я собираю проект с опцией "Runtime libriry = Multi-threaded". Если верить описанию, то это должно избавить от проблемы с зависимостями.
Цитата
Николай Камынин написал: проверьте свою dll на зависимости на компе разработчика и пользователя.
Уже сделал. О чем писал в самом пером посте. С зависимостями все ок.
Цитата
swerg написал: Обратите внимание: у вас конфигурация, от которой вы показываете настройки, Debug, а библиотеку вы выбрали не debug для этой конфигурации.
Дмитрий Минеев написал: Я собираю проект с опцией "Runtime libriry = Multi-threaded". Если верить описанию, то это должно избавить от проблемы с зависимостями.
уже хотелось бы почитать про это "описание" :)))
Цитата
Дмитрий Минеев написал: Уже сделал. О чем писал в самом пером посте. С зависимостями все ок.
ну и напоследок, от старины Билла.... так сказать, для сведения о api-ms-win-crt-runtime-L1-1-0.dll https://support.microsoft.com/ru-ru/kb/2999226Обращаю внимание, что использование данных "новшеств" от Микрософт и, соответственно, принуждение своих несчастных пользователей скачивать подобный api-ms-win-crt-runtime-L1-1-0.dll бред - заведомо тупиковый путь распространения своей QLUA-библиотеки.
IMHO советую компилировать и проверять свои системы в режиме совместимости с WinXP
Дмитрий Минеев написал: Возможно вы имели ввиду библиотеку vcruntime140.dll, потому как вашу я не нашел ни на одном компьютере, ни гугл ничего не знает про нее.
именно, так. Просто сообщения - не редактируются.
Цитата
Дмитрий Минеев написал: Вот тут та же библиотека, на машине, где она разрабатывалась http://take.ms/NQW8T. Не смотря на эту картину все работает.
не спорь.
Вобщем, Зайди в "Свойства проекта" в своей MSVS2015 (если я правильно понял...)
в крайнем случае - добавь эту ерунду - себе в Win2012 Server (наихудший вариант) по ранее приведённой ссылке: https://support.microsoft.com/ru-ru/kb/2999226 выбрав Целевую операционную систему.
тот самый написал: Внимательно прочти о том, как заполняются ВСЕ поля в Свойствах Проекта!! И... заполни их уже наконец соответствующе.
Где прочитать, я так и не понял. Если речь идет о ссылке https://msdn.microsoft.com/ru-ru/library/jj851139.aspx, то не совсем понятно, что нужно сделать. Создал новый проект https://msdn.microsoft.com/ru-ru/library/jj851139.aspx "Целевая платформа" не выбирается. Пробовал очищать поле "Версия целевой платформы" (потому, как там ничего не выбирается больше), а сейчас вообще пропал выбор "целевой платформы" и "Версии". http://take.ms/Rl7vy Менял поле "Набор инструментов платформы" на "Visual Studio 2015 - Windows XP (v140_xp)". Результат тот же.
компилирую в 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
В ОС 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", сохранил (после повторного открытия поля "Версия целевой платформы" и "Целевая платформа" пропали. http://take.ms/wG3Af В зависимостях стало вот так. http://take.ms/merjZ
Дмитрий Минеев написал: В поле "Версия целевой платформы" указал "8.1", сохранил (после повторного открытия поля "Версия целевой платформы" и "Целевая платформа" пропали. http://take.ms/wG3Af
если правильно понимаю - 8.1 - там не должно быть.
Очевидно, Microsoft - в MSVS 2015 - сделала минимально поддерживаемой Осью не WinXP, что косвенно подтверждаетс таинственными пропаданиями настроек и некоторыми комментами в гугле.
swerg написал: Обратите внимание: у вас конфигурация, от которой вы показываете настройки, Debug, а библиотеку вы выбрали не debug для этой конфигурации.
Ну так по-русски ж написано: "Библиотека врменеи выполнения - Многопоточный DLL". Т.е. вам вместе с вашей DLL в этом случае нужно таскать DLL-файлы от студии. Измените настройку-то.
И это, умоляю: поставьте английскую VisualStudio! ну это ж без слёз смотреть нельзя, да и вам сразу понятнее станет.