Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Windows программа с GUI 
:(
    Опции темы
bsa
Дата 13.5.2013, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



На winapi пишут или простейшие программы, или если за это платят, или если нет личной жизни. Чтобы это понять посмотри, как на winapi открыть файл (CreateFile) и как это сделать стандартными средствами (fopen или open). Сможешь в голове держать список параметров и их значений?
PM   Вверх
kolesnle
Дата 13.5.2013, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Упертый сишник
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 22.3.2013

Репутация: нет
Всего: нет



Цитата(borisbn @  13.5.2013,  06:15 Найти цитируемый пост)
Хммммм... С каких это пор? Или ты про линукс? 

В линуксе то само-собой.. Но часто и на винде прописаны... Может я какой-то не правильный? Хотя конечно таскать надо, это я погорячился
PM MAIL   Вверх
kamre
Дата 13.5.2013, 08:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(bsa @  13.5.2013,  08:02 Найти цитируемый пост)
Сможешь в голове держать список параметров и их значений?

А как же всемогущее IDE в виде MSVC, которое подсказывает параметры и открывает на соседнем мониторе справку из MSDN в случае необходимости?

Добавлено через 2 минуты и 27 секунд
Цитата(kolesnle @  13.5.2013,  08:12 Найти цитируемый пост)
Но часто и на винде прописаны...

Только если какая-то программа притащит с собой неизвестно какую версию и пропишет в %path% путь до них. Например, так любит TortoiseHG делать. А потом запускаешь свою программу и оно показывает окошко про отсутствующие функции в QtGui.dll, хотя из QtCreator все запускалось хорошо.
PM MAIL   Вверх
bsa
Дата 13.5.2013, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата
 А как же всемогущее IDE в виде MSVC, которое подсказывает параметры и открывает на соседнем мониторе справку из MSDN в случае необходимости?
А что делать, если нет у тебя студии? А потом, через пару месяцев вылезет ошибка, и ты будешь каждую функцию по документации проверять. Вместо того чтобы бегло просмотреть код.
Winapi имеет ужасный дизайн. И пользоваться ей без крайней необходимости не следует. Размер итоговой программы очень редко, когда является главным критерием. А вот время разработки и простота поддержки - очень часто.
PM   Вверх
kamre
Дата 13.5.2013, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 2
Всего: 13



Цитата(bsa @  13.5.2013,  08:33 Найти цитируемый пост)
А что делать, если нет у тебя студии?

Писать под winapi без студии?

Цитата(bsa @  13.5.2013,  08:33 Найти цитируемый пост)
Winapi имеет ужасный дизайн. И пользоваться ей без крайней необходимости не следует.

Согласен на счет дизайна. У меня и WTL не получилось осилить, а от MFC одни неприятные воспоминания.

Цитата(bsa @  13.5.2013,  08:33 Найти цитируемый пост)
Размер итоговой программы очень редко, когда является главным критерием. А вот время разработки и простота поддержки - очень часто.

Тогда вообще к черту C++ и бегом под .NET писать smile
PM MAIL   Вверх
bsa
Дата 13.5.2013, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата
 Тогда вообще к черту C++ и бегом под .NET писать
А если хочется, чтобы прога не только под windows работала?
PM   Вверх
kuzulis
Дата 13.5.2013, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 5.9.2007

Репутация: нет
Всего: 1



Вставлю пять копеек smile

Если уж хочется компактности и быстроты WinAPI - то WTL во все поля! 

Она довольно простая, все на шаблонах и т.п., поэтому не придется таскать с собой кучу dll-лок,
да и размер GUI приложения будет - килобайты.

Но вся проблема в том, что при использовании WTL, и тем более чистого WinAPI придется нехило заморочится с чтением MSDN на каждый чих (будь то раскраска текста или работу с I/O). Нужно будет разобраться со всеми нюансами работы каждого WinAPI-шного метода и т.п., реализовывать кажый обработчик и т.п. Геморрой еще тот! 

Тем более, не все так просто: WinAPI для ОС от XP до 8-ки очень нехило отличается. Например, некоторые методы в 8-ке (начиная с висты) являются deprecated и не используются, или же имеются только в ОС, начиная с Vista. Поэтому придется нехило натыкать дефайнов в код и код со временем превратится в лапшу.

Также можно отгрести проблем с локализацией, с сегфолтами при использовании строк TCHAR (если быть невнимательным).  

WTL и WinAPI требуют от разработчика нехилого внимания и концентрации, и уж тем более я бы не рекомедовал новичкам это. Хотя, опытные программисты получат очень много плюшек при использовании этих низкоуровневых вещей. 

ЗЫ: Я сам недавно фиксил баги в WTL проекте. Сначала плевался - но потом освоился и даже подсел на WTL. smile 

Но все-равно, с удовольствием переписал бы с нуля этот проект на Qt за неделю (если бы была моя воля) - было бы качественнее и надежнее. Но проблема - в размерах dll-лок от Qt и в менеджменте. smile

Как то так...
PM MAIL   Вверх
Schlodii
Дата 15.5.2013, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.5.2013
Где: Минск, Беларусь

Репутация: нет
Всего: нет



Спасибо всем за подсказки и советы! На данный момент я склоняюсь к тому, чтобы всё-таки попробовать Win32 API, но ограничиться лишь простейшим окошком с меню, а остальная часть программы так и останется на Visual Basic.NET. Придётся делать два экзешника или же в коде делать вставки из API. 

Делать всю программу на API в моей ситуации, конечно, бессмысленно (банально не смогу), вынужден согласиться с доводами в этой теме. 

Что касается Qt, то пока отложу её изучение. Относительно большой размер выходных файлов и необходимость плотно изучать С++, чтобы воспользоваться всеми плюшками Qt, несколько охладили мой пыл. Может быть имеет смысл писать разные части программ на Visual Basic.NET, API и Qt? Не сейчас, а тогда, когда знаний чуть прибавится. 
PM MAIL   Вверх
bsa
Дата 15.5.2013, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



на winapi имеет смысл писать только критичные по производительности или платформозависимые (низкоуровневые) операции. Qt - идеальная среда для создания кроссплатформенных приложений. А вот Visual Basic.NET для тебя лучший выбор, так как ты знаешь его, и он позволяет создать то, что необходимо.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1186 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.