Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ -ужасные типы, непонятные... HINSTANCE, LPSTR, LPVOID, STARTUPINFO... 
:(
    Опции темы
jxr
Дата 21.5.2006, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



чистий С++ !!!
Но - WinAPI все портить. 
было бы хорошо - создали особый API(понятый-стуруктурный).
может есть?
как в Java и в .NET - но только не меняя идею С++.
если что то не так... плиз, я не занимаюсь профессионално С++.   

Это сообщение отредактировал(а) jxr - 21.5.2006, 23:26
PM MAIL   Вверх
chipset
Дата 21.5.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



А в чём вопрос? 
Win32Api создавался не для С++ и даже не для Си а для процедурных языков (и даже Basic). 


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
jxr
Дата 21.5.2006, 23:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я и об этом говорию...
не было бы плохо(супер!)...
...создать API для С++.
API - понятый-стуруктурный, типа Java и\или .NET
вообще есть такие подходы? 
или чего то я перепутаю?!
помогите разобраться, плиз.
PS. В Win32Api заниматься программированием очень сложно.   

Это сообщение отредактировал(а) jxr - 21.5.2006, 23:49
PM MAIL   Вверх
DeadSoul
Дата 22.5.2006, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



HINSTANCE - void*
LPSTR - это Си-строка(Может состоять тз Unicode символов!) 
LPVOID - void* 
STARTUPINFO - см. документацию 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
jxr
Дата 22.5.2006, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я не спрашиваю... что  эти типы означает!
почему не void*  - а HINSTANCE.
void* - проще писать и понять.  

Это сообщение отредактировал(а) jxr - 22.5.2006, 00:14
PM MAIL   Вверх
DeadSoul
Дата 22.5.2006, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



jxr, потому, что никто тебе не гарантирует, что при выходе новой винды этот тип останется void* 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
maxim1000
Дата 22.5.2006, 01:03 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



Цитата(jxr @  21.5.2006,  23:12 Найти цитируемый пост)
почему не void*  - а HINSTANCE.
void* - проще писать и понять

может, писать и понять и проще
но проще ли понять правильно?
не только HINSTANCE является void*
также и HBITMAP, например
и совсем неплохо, когда тип (в смысле языка) несёт информацию об объекте (то же ООП можно привести в пример)

кроме того, WinAPI совсем необязательно использовать
есть куча библиотек (VCL, MFC, ...), позволяющих строить интерфейсы
при их использовании можно (за исключением специфических ситуаций) вообще отказаться от функций WinAPI - они его "оборачивают" своими функциями и классами

Цитата(jxr @  21.5.2006,  22:47 Найти цитируемый пост)
В Win32Api заниматься программированием очень сложно.

ну, это довольно-таки субъективно
всё зависит от задач
если нужно что-нибудь сложное, для чего есть компонент в C++Builder'е (например), то, конечно же, проще использовать его, а не чистый WinAPI
а если мне надо вывести окошко с сообщением, то
Код

Application->MessageBox(<чего-то там>);

не намного проще (если вообще проще), чем
Код

MessageBox(<чего-то там 2>);
 


--------------------
qqq
PM WWW   Вверх
MAKCim
Дата 22.5.2006, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



реализации меняются, а название типа остается
имхо, так правильно, да и дело привычки  smile  


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
jxr
Дата 22.5.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

кроме того, WinAPI совсем необязательно использовать
есть куча библиотек (VCL, MFC, ...), позволяющих строить интерфейсы
при их использовании можно (за исключением специфических ситуаций) вообще отказаться от функций WinAPI - они его "оборачивают" своими функциями и классами

сколько таких  библиотек? (VCL, MFC, ...) и для чего каждый... 
у меня Dev-C++ компилятор.
VCL библиотека бывает вместе с компиляторам или...?(Dev-C++)
VCL - если можно книга-справочник...?
спосибо.
 
PM MAIL   Вверх
GremlinProg
Дата 22.5.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Сейчас много оболочек живет типа VCL, MFC, QT, WTL... , но в том то и дело, что они - просто оболочки, да и к тому же нестабильные: почти каждый год они модифицируются и приходится вникать в эти изменения, запоминать переход от одной версии - к другой, а API - это то, вокруг чего все ходят, всем она не не нравится, всем она неудобна, но ведь ни одна оболочка не решит задачи, с которой не справится API. Это надо всегда помнить. К тому же, API, а по сути, ядро, меняется очень и очень мало. Даже если какой-нибудь интерфейс обновился, то API всегда его держит в следующих версиях для того, чтобы не было проблем с совместимостью. Вот даже сегодня существует полный набор функций, работающих с 16-ти битными версиями программ. А кто в последний раз к примеру видел грандиозную надпись на мониторе Windows 95? Но все равно выбор остается за разработчиком, поэтому везде найдутся любители и MFC и WTL и много чего еще. И даже они не считают, что знание API им не нужно. 


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
jxr
Дата 22.5.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



VCL - если можно книга-справочник...?
для каждого компилятора особый VCL?
VCL - производител = производител компилятора?
 
PM MAIL   Вверх
Earnest
Дата 23.5.2006, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



VCL - это от Борланда и, соответственно, для него. Не знаю, совместима ли с другими компиляторами. MFC и WTL от MS для MSVC, но кажется MFC поддерживается и некоторыми другими. 
Сначала определись с компилятором, а потом уже смотри, какие библиотеки для него есть.
Если идти от API, то лучше смотри в сторону MFC, а не VCL. Первая "тоньше", меньше и понятнее, хотя вторая, конечно, богаче.

Кстати, GremlinProg, не соглашусь с тобой насчет нестабильности, по крайней мере, MFC: за почти 10 лет было всего 2 существенных изменения: при выходе MFC 4 и при выходе VC2003. Да и то, оба раза переход не представлял проблем. Насчет API - согласна. 


--------------------
...
PM   Вверх
GremlinProg
Дата 23.5.2006, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Да, действительно, забыл сказать про MFC. Это пожалуй единственное исключение из правил. За счет того, что MFC была одной из самых первых, её стабильность поражает. Но, к сожалению, поражает она не только стабильностью, но и объёмом информации, в связи с чем MFC уже превратилась в некоторое подобие API, со своими интерфейсами и библиотеками, которые необходимо устанавливать для любого, хоть самого незначительного приложения MFC. Вывод сам напрашивается, лично для меня такой : "Зачем мне 2 апи?". Суть оболочки в том, что она невесома. MFC отню дь не невесома, поэтому к оболочкам я её уже давно не отношу. 


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Earnest
Дата 23.5.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Верно, MFC большая дура. Она ведь не только оборачивает API, а еще и предлагает готовый фрейворк для работы с документами в SDI и MDI стилях, и не самый плохой. А это куча кода, который все равно придется писать для соответствующих приложений. MFC, конечно, еще и OLE-хвосты, и прочую муру по старой памяти тянет, увы... но часть можно отключить макросимволами. Если документ-вью фреймворк не нужен, тогда можно рассмотреть WTL - это сплошные шаблоны, куда уж тоньше. Конечно, насчет стабильности говорить пока рано, ей без году неделя.  

Это сообщение отредактировал(а) Earnest - 23.5.2006, 16:52


--------------------
...
PM   Вверх
DeadSoul
Дата 23.5.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Earnest @  23.5.2006,  16:50 Найти цитируемый пост)
Если документ-вью фреймворк не нужен, тогда можно рассмотреть WTL - это сплошные шаблоны, куда уж тоньше. Конечно, насчет стабильности говорить пока рано, ей без году неделя.  

Earnest, похоже не будет у нас согласияsmile
1. WTL - вещь далеко не новая. И MS на нее "забила" еще раньше, чем на MFC
2. WTL - шаблоны?!  Ты готов платить за эту билиотеку увеличеным временем компиляции?
3. WTL почти не пользуется спросом на рынке труда. 


--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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