Написал программу на c++. В ней есть функции: запуск программы, добавление записи в реестр, цикл и пара функций, а также несколько поключенных заголовков.
Как мне запустить уже скомпилированную программу практически на нулевом Windows (выдается ошибка о не найденом dll файле, возможно ли этот dll вместе с программой скрепить или вшить в нее) или как мне, допустим, с .net framework 4.0 опустить требования программы, скажем, до .net framework 3.0?
Проще всего - у вас явно никакого .NET не видно - собрать программу со статическими библиотеками и не мучиться.
В командной строке - ключик /MT
, в проекте - меню Проект - Свойства - Создание кода - Библиотека времени выполнения - Многопоточная.
Тогда все необходимое из runtime-библиотек VC++ будет включено в код программы, и никакие DLL тянуть не потребуется. Размер EXE, понятно, будет побольше, чем при динамической компоновке.
Еще - скажем, если программа должна работать на чем-то стареньком типа XP, и у вас точно не используется ничего нового из API - можно указать линковщику соответствующий параметр /VERSION
- а то последние версии VC++ ставят по умолчанию не ниже Windows 7.
MSVCP140D.dll
является частью того, что называется Microsoft Visual C++ Run-Time Redistributable. Правильное решение этой проблемы - требовать установки этой штуки на пользовательском компьютере, или распространять вместе с программой ее установщик.
Кстати, D
в имени означает отладочную библиотеку. Есть подозрение, что библиотека без D
и так присутствует на любой современной винде. Попробуйте скомпилить свою программу в режиме Release
и затем запустите на другом компьютере.
Если программа НЕ использует .net framework и не нуждается в нём, то можно так:
Повторять до тех пор, пока программа не запустится.
А когда запустится, у тебя будет папка с программой и пачкой dll - можно тащить куда угодно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какая функция вернет положение управляющего элемента RECT{50,30,300,80}?
При отработке ajax-запроса странно работают методы hide и showНа долю секунды блоки, которые должны исчезать, еще висят и только потом с 'дерганием'...