С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.64
pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
#1

Программа на другом компьютере - C++

05.08.2009, 01:35. Просмотров 2879. Ответов 20
Метки нет (Все метки)

Знаю эта тема уже была также пользовался поиском находи но ничего не понял можете подробней рассказать какие файлы нужно переносить на другой комп чтобы программа работала и запускалась нормально ??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.08.2009, 01:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа на другом компьютере (C++):

Программа крашится на другом компьютере - C++
Здравствуйте. Имеется код программы, на одном компьютере он работает так как положено, но при запуске на другом компьютере происходят...

Ошибка компиляции на другом компьютере - C++
Снова проблема такого радо что скопировал код с одного компьютера и при запуске на своем компиляция выходит с ошибками. #include...

Release. Работа на другом компьютере - C++
Написал программу в Visual Studio 2010. Вчера скинул её другу посмотреть, она не запустилась. Ему нужно было скачать какую-то библиотеку. И...

Запуск программы на другом компьютере - C++
Если я написал, построил прогу и скинул её на другой комп, то она просит .dll файл, есть предложения как упростить установку проги на ...

Как запустить программу на другом компьютере? - C++
Создаём пустой проект windows form. Что надо выставить в компиляторе что бы программа 1) упаковала все ресурсные файлы в 1ин экзешник ...

Exe-файл не работает на другом компьютере - C++
VS2010, release, у меня работает корректно, у заказчика вылазит ошибка, подскажите пожалуйста почему так может происходить (антивирус...

20
PB
Просто прогер
1281 / 1068 / 11
Регистрация: 13.03.2009
Сообщений: 2,502
05.08.2009, 16:40 #16
Цитата Сообщение от Evg Посмотреть сообщение
Много неиспользуемых функций - это следствие принципов линковки
Вот про это я и пишу.
Неужели нельзя сделать нормальный линкер?
1
Evg
Эксперт CАвтор FAQ
18377 / 6424 / 441
Регистрация: 30.03.2009
Сообщений: 17,828
Записей в блоге: 28
05.08.2009, 17:11 #17
Цитата Сообщение от PB Посмотреть сообщение
Вот про это я и пишу.
Неужели нельзя сделать нормальный линкер?
Линкер нормальный, но в объектном файле (как и в машине вообще) нет понятия процедуры или объекта (оно тольо условное). А есть понятие набора байтов и меток, торчащих в этом наборе

Добавлено через 2 минуты 43 секунды
Цитата Сообщение от PB Посмотреть сообщение
Нет проблем.
В прикреплённом файле аналогичная прога для Linux.
Как и предполагал, речь идёт именно и динамических библиотеках. Удалю с машины libpng12.so.0 (ибо она не есть "стандартная") - код перестанет запускаться. ТОчно так же ты можешь борландовски dll'ки скопировать в системные каталоги и у тебя получится точно такой же "переносимый" бинарник
1
odip
Эксперт С++
7159 / 3221 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
05.08.2009, 21:46 #18
ты можешь борландовски dll'ки скопировать в системные каталоги и у тебя получится точно такой же "переносимый" бинарник


Добавлено через 6 минут 27 секунд
Ищите файл на своем компьютере и переносите в директорию с вашей программой на другом. Снова запускаете. Смотрите файл -> переносите. И так пока не запустится.
Это все было верно до появления Visual Studio 2005 и ее runtime библиотек.
Например берем файл msvcr80.dll
Можно его скопировать в каталог к exe-файлу, но эта dll так и не будет использоваться !
Для интереса можете поискать где в каталоге C:\WINDOWS\ находится файл msvcr80.dll. Его либо вообще там не будет, либо будет лежать где-то в C:\WINDOWS\WinSxS\...
Если программа использует такие dll-ки, то нужно либо писать специальный инсталлятор, либо ставить в систему runtime для VS2005 (еще есть для VS2008) - он раздается на сайте microsoft, либо предупредить пользователя, что нужно поставить этот runtime.
1
mishvecov
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 2
21.01.2013, 14:58 #19
Цитата Сообщение от PB Посмотреть сообщение
Ну перпутал немного но ведь и так понятно что имелось в виду.


Пример - скомпилированая прога с прикреплённом файле.
Эта прога, создаёт окно с кнопкой и обрабатывает события этой кнопки.
Весит 12КБ.
В runtime не нужнадется и будет работать на любом компе если на нём установлена ОС Win98 или более свежая.
Для создания окна, кнопки и обработки событий, использованы функции среды, но если бы всё сделать на API, то скомпилированая прога весила примерно 4КБ.
Это я к тому, что при сборке исполняемого файла, статически должны быть прилинкованы не все функции, а только нужные, что существенно уменьшит размер исполняемого файла.
Это позволит статически прилинковывать runtime библиотеку и при этом размер исполняемого файла будет крохотным, точнее напрямую зависящим от задействованых функий.
Подскажи пожалуйста, если можешь дать исходник, как ты скомпилировал эту программу.

Я создал ПУСТОЙ c++->win32->Проект Win32 под visual studio 2012. Добавил файл file.cpp с кодом
C++
1
2
3
4
5
6
7
#include <windows.h>
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    MessageBox(NULL, "Goodbye, cruel world!", "Note", MB_OK);
    return 0;
}
Скомпилировал и выполнил У меня получился файл 58 Кб. Твой же весит 13Кб.
Изменял свойства проекта:
Убрал набор символов Unicode что бы программа компилировалась
набор инструментов платформы visual studio 2012 - Windows XP что бы в winxp запускалось
Библиотека времени выполнения /MT что бы без 110dll

Вот что вышло
Win32Project1.zip
0
Digit@ll
Brainsbreaker
884 / 362 / 31
Регистрация: 01.02.2011
Сообщений: 1,586
22.01.2013, 01:26 #20
mishvecov, он пишет на Pure Basic'е, это не то. По твоему коду исходнику 800 байтов размер будет.
Минимальный размер EXE файла PE формата. Читай внимательно и гугли, удачи.
1
mishvecov
0 / 0 / 0
Регистрация: 21.01.2013
Сообщений: 2
22.01.2013, 03:50 #21
Цитата Сообщение от Digit@ll Посмотреть сообщение
mishvecov, он пишет на Pure Basic'е, это не то. По твоему коду исходнику 800 байтов размер будет.
Минимальный размер EXE файла PE формата. Читай внимательно и гугли, удачи.
Спасибо.
Да 800 Требующие MSVCRT.dll. Или 2560 не требующий dll.
msgbox.zip
0
22.01.2013, 03:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2013, 03:50
Привет! Вот еще темы с ответами:

Русские символы в консоли на другом компьютере - C++
Запускаю .exe консольной программы на другом компьютере - в ответ получаю иероглифы. На другом компьютере нет MSC10, на котором писалась...

Ошибка при запуске программы на другом компьютере - C++
Всем доброго времени суток, у меня возникла проблемма при запуске программы на другом компьютере. Программа должна вывести изображение...

Чтение файла exe на другом компьютере, где нет Visual - C++
У меня Vusial Studio 2008 (rus). Я написал программу. Она работает, все хорошо... Но если только один файл .exe скопировать в другой...

Запуск моей программы, написанной в Visual Studio 2015, на другом компьютере - C++
Здравствуйте! Просмотрела все темы с такой же проблемой на этом форуме, решения не нашла. Написала программу с использованием библиотеки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.