slice
написал 27 июня 2004 года в 23:51 (1001 просмотр)
Ведет себя
как мужчина; открыл 39 тем в форуме, оставил 244 комментария на сайте.
В одном из номеров Chip`a была написана статья о кроссплатформенных приложениях. Был даже небольшой пример написанный на Kylix. Насколько сложно писать программы для винды и одновременно для Линукса? Ведь нужно разбираться в устройстве обоих систем. Есть ли у кого-нибудь опыт написания подобных программ? Стоит ли вообще заниматься таким видом программирования?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Пиши на Джаве и не заботься об устройстве разных систем… :-) Тока все равно будет «ни богу свечка, ни черту кочерга»
Good Luck,
UT
чтоб не повторять атмосферку — есть немного тут.
Saying that Java is nice because it works on all OS’s is like saying that anal sex is nice because it work on all genders.
А можно ли написать кроссплатформенную программку на С ?
cebka, ты круто заявил о Java, прямо в точку!!!
Я чего-то не встречал, чтобы на Си писали в виндоусе (разве только в досе). Там как правило на Си++. И используют API функции и библиотеки различных сред (типа MFC, VCL). И самой сабой это все не порет на *nix.
А на фига тебе кроссплатформенность, пиши под *nix.
Да я записался на курсы по программированию на С++. Естесственно там Visual С. Смогу ли я применить эти знания при программировании в *nix?
Я работал на Borland C++Builder, и теперь читаю в книгах про *nix, что не понятно на форуме спрашиваю…
Короче знания Visual C++ поможет тебе только как знание синтаксиса языка C++ (ну и стандартные классы и функции — эти знания тоже можно перенести в *nix). В *nix другие системные вызовы, другая работа с устройствами, другие библиотеки.
Переходи на *nix там свободы больше…
Поэтому я и здесь. Набираться знаний по никсам и программированию :)
При правильном отношении к материалу — безусловно сможете.
Скорее всего, на вас посыпется каша сведений из трех областей:
1. Собственно C/C++ — язык и его выразительные средства
2. Платформа — специфичные для MS библиотеки и прочее
3. Особенности инструмента (Visual Studio) — как создавать проекты, и вообще на какие кнопки нажимать
Вашей задачей будет научиться сортировать эти сведения по их областям, тогда вы освоите и первое, и второе, и третье. В частности, настоятельно рекомендую делать домашние задания не в Studio, а в какой-нибудь другой среде; лучше всего, в командной строке. Если под рукой есть линукс, старайтесь, чтобы задание можно было бы собрать и там и там.
Успехов
> А можно ли написать кроссплатформенную программку на С ?
Можно.
> Я чего-то не встречал, чтобы на Си писали в виндоусе
Ещё как пишут (и не просто для себя, а реально известный софт)
> …Там как правило на Си++. И используют API функции и библиотеки
> различных сред (типа MFC, VCL). И самой сабой это все не порет
> на *nix.
Не совсем. Есть CLX, призвание которой как раз позволить «попереть».
Только вот объёмистые бинарники получаются, как впрочем и с vcl.
Но если ты сам заюзал WinAPI, то тут делу уже не поможешь.
Придётся искать другие пути реализации фрагмента алгоритма без WinAPI.
>Смогу ли я применить VisualC++-знания при программировании в *nix?
Сможешь, если будешь грамотно отличать, тчо тебе преподают.
Наверняка всё начнётся с введения в синтаксис, затем писанина консольных приложений и только потом переход у WinAPI + MFC,
т. е. плавный переход в гуи или может быть +ATL, +etc.
Но так или иначе нужно в c/c++ въехать. И тогда будет ясно как
вообще писать и всё равно будет под что. Главное дело, которое
останется до перехода в никсы, так это изучить их специфику.
Кстати, я по себе знаю, лучше для того, чтобы понять, что ваяешь
на VisualC++, почаше заглядывать в заголовочные/исходные файлы.
Ведь зачастую за тем, что ms называет функциями, скрываются либо
обёртки из стандартных библиотек, а то и вообще макросы.
Ещё лучше, заранее разбираться, что есть стандартная вещь
для C++, а что — специфическая от ms, коего в vc++ довольно много.
Это отрицательно сказывается на том, когда исходник, который вроде
даже нормально выглядет, вроде соответствует стандарту ansi, а
фиг два скомпилишь в никсах. Вот пожалуй некоторые мои мысли,
которые удалось вспомнить по поводу того, чтобы заранее знать о
всех граблях и подводных камнях кроссплатформенности.
Писать-то можно. Например, под qt. wxWindows — мало ли кроссплатформенных либ?
Мне вот интересно, почему никто не упоминул о таком языке как Python. К сожалению, я не очень хорошо с ним знаком, но я слышал, что благодаря ему обеспечивается очень хорошая многоплатформенность.
«Мне вот интересно, почему никто не упоминул о таком языке как Python. К сожалению, я не очень хорошо с ним знаком, но я слышал, что благодаря ему обеспечивается очень хорошая многоплатформенность.»
Да там ХОРОШАЯ мультиплаформенность, как и у любого интерпритируемого языка, интерпритатор есть почти под любую платформу.
Кстати СОВЕТУЮ ознакомиться http://python.ru/
Это касается любого скриптового языка. О питоне также можно почитать и на python.manual.ru Язык весьма хороший и правильный. Мне нравится.
нужно использовать кроссплатформенный набор библиотек : glib,GTK+&co etc .
на счёт Qt&co не знаю .
да . весь GTK такой
Ну, с сугубо философской точки здрения, это делается так. Выбирается кроссплатформенные библиотеки, которые абстрагируют те части кода, которые зависят от системы или от железа. И соответственно, они и используются, где только возможно в коде. Джава абстрагирует все. OpenGL абстрагирует графику. И т.д. Проблемы те же, что и с джавой: подобные библиотеки работают «так себе» во всех системах, усредняют возможности, и требуют тонкой доводки в каждой системе. Но в принципе, так делать можно. Но не нужно… :-)
Good Luck,
UT