Добрый вечер, всем! У меня есть такой вопрос: пишу программу в Visual Studio 2005, компилирую. Переношу exe на компьютер, на котором не установлена VS 2005. Запускаю и получаю ответ: "Не удается выполнить программу". Какие нужны настройки в VS 2005, что бы запустить программу на другом компьютере?
Григорий, очень может быть, что на компьютере не установлен .NET 2.0 или 3.0 или MDAC 2.8 и выше. Что за программа, на котором языке.
если прога пишется на C++ то нужно следить за тем CRT была прилинкована статически, или не использовать CRT совсем
Если на 2005, то скорее всего на другом компе нет Framework.NET 2.0. Покавыряйся на первом компе в диретории куда установлена Visual Studio 2005, и поищии фаил с именем dotnetfx.exe (весит ~23 метра), если найдешь хватай его и установи на новый комп, ну и пускай программу.
А кто-нибудь пробывал в Visual Studio 2005 прилинковать статически msvc80.dll? У меня неполучилось. Пришлось не нужный импорт вручную убивать, только тогда удалось запустить на машине без msvc80.dll и пр.
GMax В этом как раз ничего сложного нет. Все задается в свойствах проекта (Config Props.->Use of MFC). По идее, пишушим на WinAPI надо вообще указывать параметр Use Standard Windows Libraries.
IceStudent Большое спасибо помогло Правда наверное остановлюсь на своем методе, т.к. размер проги увеличился в 2,5 раза (с 108Кб до 236Кб). VC добавил всю msvc80.dll со всеми функциями (хотя нужна была всего одна). Я просто в импорте заменил msvc80.dll на msvc60.dll, а пару функций просто удалил.
Недавно "налетел" на то же самое. После двух часов копания в опциях и перестройки кода нашёл вот это: 1. Из меню: "Project -> <your project name> Properties..." 2. Из дерева: "Configuration Properties -> C/C++ -> Code Generation" Замени "Multi-threaded DLL" на "Multi-threaded". Просто выбрать нужное, но без "DLL".
Добрый вечер! Все испробывал кроме последнего. Ничего не помогло. Последнее действие испробывать не получилось т.к. у меня происходит вылет с прозьбой об отправки сообщения в Microsoft. Я сделал по другому. Создал проект в VS 6.0 и перенес его в VS 2005. И теперь при создании нового проекта использую, этот проект в качестве исходного.
Как уже говорилось выше, наверняка это связано с тем, что ты создаешь проект под .NET. У программ, работающих в Win32 (а именно такие и создает VC 6.0) никаких проблем с переносом быть не должно. Если использование .NET в твоих разработках не критично, то имеет смысл от нее отказаться.
Не имеет, т.к. студия 7.1 намного превосходит 6.0. Правда, более требовательна к ресурсам и несёт с собой дотнет. Но разговоры о том, что 7.0+ не могут создавать чистые бинарики (переносимые между 95-виста) лишь говорят о том, что вы не разобрались с настройками, умолчания которых меняются от версии к версии.
Как раз таки наверняка из-за msvc80.dll. Отключи CRT или, если он нужен то используй методы описаные выше...
Странно у меня нет в системе ни msvc80.dll ни msvc60.dll - значит и прога Григория работать не будет? [offtop] потестил на масме gcvt, ecvt, fcvt из msvcrtXX.dll версий 10-40 - одинаково глухие тормоза ( Казалось бы crt популярнейшая либа, да кто тому же опенсорцная (типа пример для подражания), неужели за столько версий нельзя было её хоть немного оптимизировать? [/offtop] Или я всё таки не те dll тестирую?