|
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
|
|
Переносимость программы, куча dll и кроссплатформенность08.05.2014, 11:24. Показов 3614. Ответов 20
Метки нет (Все метки)
Решил пощупать С++ и Qt после C#.
Создал простейшее консольное приложение и оконное Qt. В итоге, что бы приложение открылось вне IDE Qt пришлось скопировать в папку с программой dll для консольного приложения на 1мб+, для оконного на 350мб+. При переносе приложения на другие компьютеры вместе с этой кучей dll консольное приложение работает, а вот оконное нет, выдает Microsoft Visual C++ Runtime Library - This app has requested the Runtime to terminate it in an unusual way. VC++ redistribut требует? Если надо таскать dll на 300+ мб то чем это отличается от framework тогда? Наверно их вшить в приложения можно, но в любом случае программа сильно увеличится в размерах. К тому же, как я правильно понял в идеале надо перекомпилировать программу под каждый процессор и ОС отдельно, причем если для виндуса может быть перенос копи пастом сработать, то для линукса нужно полюбому перекомпилировать программу(что бы она работала без wine), в связи с этим сильно разочаровался, так как под кросплатформенностью я понимал простой перенос программы на любую ОС, на любой проц. Лично проверял, что программы, созданные под .Net спокойно работают в Linux без wine под mono. В чем преимущество C++ тогда, в быстродействие самой программы на доли секунды, что не будет заметно невооруженном глазом? Низкий уровень не нужен, нужна реализация Gui для сотрудников офисов и т.д.
0
|
|
| 08.05.2014, 11:24 | |
|
Ответы с готовыми решениями:
20
Dll перевод в кроссплатформенность Универсальный язык. Быстрые программы. Кроссплатформенность Переносимость программы |
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
|||||
| 08.05.2014, 11:29 | |||||
|
+можете UPX'ом сжать. Но (!) код менять не придется, просто нужно будет скомпилировать под конкретную платформу, ибо форматы исполняемых файлов у всех разные. Только вот C++ не может в GUI и это печально. И вы пишете не в тот раздел, тут есть целый раздел, посвященный Qt.
0
|
|||||
|
Заблокирован
|
|||||
| 08.05.2014, 11:40 | |||||
|
С собой надо таскать столько DLL-к, сколько ты модулей подключил, ну и плюс там парочка системных
0
|
|||||
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
|||||
| 08.05.2014, 11:42 | |||||
|
Посмотрите на скайп. Насколько мне известно, он написан с использованием Qt. Если откроете папку со скайпом, то увидите лишь Skype.exe, который весит 20 мбайт. Вот вам и статическая линковка. Добавлено через 1 минуту ![]()
0
|
|||||
|
Заблокирован
|
||
| 08.05.2014, 11:43 | ||
|
0
|
||
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
||
| 08.05.2014, 11:47 | ||
|
Про скайп ошибся, на Qt он написан лишь для линукса
Добавлено через 3 минуты
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 08.05.2014, 11:52 | ||
|
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 08.05.2014, 12:00 | |
|
Ну и ни какое приложение не сможет работать абсолютно на любой платформе. Начиная с того, что другой процессор может не поддерживать коды операций и заканчивая несовместимым форматом исполняемого файла. Даже если к системным функциям не обращаться, разные процессоры могут вообще не иметь совпадающих кодов операций, а разные операционные системы не поддерживать ни одного совпадающего формата исполняемого файла. Да и неиспользование системных функция маловероятно из-за контроля доступа к ресурсам. По-настоящему кросплатформенная порграмма - это всегда программа, имеющая версии, совместимые с разными платформами, но при этом имеющие в точности совпадающий интерфейс и функционал. И mono здесь не аргумент: на какой нибудь системе его может не быть, или он окажется не той версии и прювет лунатикам. Нэтовые проги с винды на винду отлично не переносятся даже с бубном.
0
|
|
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
||
| 08.05.2014, 12:02 | ||
|
Не по теме: Не люблю Java =/
0
|
||
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
|
| 08.05.2014, 12:07 | |
|
Croessmah, а, ну раз мы про нативные, тогда да. Тут даже глупо спорить.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 08.05.2014, 12:08 | |||
|
Добавлено через 46 секунд
0
|
|||
|
8 / 8 / 2
Регистрация: 10.12.2013
Сообщений: 148
|
||||
| 08.05.2014, 12:09 [ТС] | ||||
|
0
|
||||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 08.05.2014, 12:10 | |
|
0
|
|
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
|||
| 08.05.2014, 12:17 | |||
|
Вроде как RISC и z-80 уже не используются, нет? Или я ошибаюсь? Добавлено через 1 минуту Не по теме: Короче, я совсем запутался о теме диалога, пойду свой HDD чинить :) Добавлено через 1 минуту Ещё можете UPX'ом их сжать, жмёт хорошо. И вообще, имхо, пока лучше юзать Qt4, если андроид не нужен.
0
|
|||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||
| 08.05.2014, 12:23 | |||
|
Добавлено через 1 минуту Добавлено через 2 минуты Кстати, гарантии, что кто нибудь не создаст новый процессор RISC-семейства, нет.
0
|
|||
|
148 / 139 / 18
Регистрация: 13.10.2012
Сообщений: 592
|
||
| 08.05.2014, 12:27 | ||
|
taras atavin, в посте сказано:
На данный момент достаточно скомпилить под определенную платформу и заработает на любом из наиболее используемых (Intel/AMD) процессоров. На андроиде нужно компилить отдельно под Intel и ARM, но это само собой разумеется.
0
|
||
| 08.05.2014, 12:27 | |
|
Помогаю со студенческими работами здесь
20
Переносимость программы Переносимость программы в семействе windows Как обеспечить переносимость программы Переносимость программы. Отображение рисунка в PictureBox Куча в DLL и EXE Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|