Доброе время суток,эксперты ! Я задавал вопрос по поиску иконки в exe-файле. Спасибо экспертам : Gibbel и Артем Шегеда. Исользуя функцию EnumResourseName я понял что иконки идут первыми ресурсами.Пишу такой код : // ** поиск иконки ** HMODULE hExe; // handle to existing .EXE file HRSRC hRes; // handle/ptr. to res. info. in hExe HRSRC hResLoad; // handle to loaded resource char* lpResLock; // pointer to resource data
hExe = LoadLibraryEx("auto.exe",NULL,LOAD_LIBRARY_AS_DATAFILE); hRes = FindResource(hExe,MAKEINTRESOURCE (1),RT_ICON); hResLoad = (HRSRC)LoadResource(hExe,hRes); lpResLock = (char*)LockResource(hResLoad); Все зашибись и без ошибок. Но что вот дальше с этими lpResLock,hResLoad делать ? Как
получить HICON hIcon ? В примере MSDN этого нет,там просто диалог из одного exe в другой перекидывают. IceWINteR
Здравствуйте, IceWINteR! Я чего-то не понял, что ты пытался сделать??? Если ты пытался отыскать иконку, которая отображается проводником - то ты абсолютно не прав. Вызываешь функцию EnumResourceNames при lpszType=RT_ICON, в EnumResNameProc запоминаешь первое имя ресурса. Далее загружаешь его функцией LoadIcon. Ответ отправлен: 24.10.2002, 17:04 Отправитель: Gibbel
Вопрос № 308
Здравствуйте уважаемые эксперты! Немогу разобраться как на api написать диалоговое окно с 4 кнопками (хотя окно с кнопками я нарисовал) и обработчик нажатий этих кнопок. Желательно примерчик. VisualC++ 6. Заранее очень благодареН!
Добрый день, Саша! :)) так там есть ресурсы создай ресурс например IDD_MYDIALOG и прилепи туда кнопки :)). Либо перехватывай событие WM_INITDIALOG и там CreateWindowEx создавай кнопки. А еще лучше поищи в яндексе например visual faq и там описано Ответ отправлен: 25.10.2002, 07:42 Отправитель: DiGiT[old]
Вопрос № 309
Всем доброе время суток (и добрый день мне)... У меня к вам несколько вопросов... Чисто от нефиг шо делать я довольно давно занялся изучением С++... ну... в общем, это мне тогда делать нечего было... а сейчас как раз есть... и о чень много... но все же я не бросил это благородное занятие... накупил кучу всяких книг, основной из которых является книга Джесса Либерти "Освой замостоятельно С++ за 21 день" (ну про 21 день это они конкретно загнули...)...Как мне кажется книга эта неплохая... но убивает она меня тем, что прочитав ее можно писать исключительно консольные приложения, которые, плюс ко всему, еще и не запускаются из-под ДОСа... Конечно... консольные приложения это весело... но до поры до времени... и мне это уже как-то надоело... А теперь вопрос... Не подскажет ли кто-то из вас где бы можно было взять книгу (как бумажную так и электронную)
которая бы смогла научить меня программировать под настоящую виндоус... в смысле во всеми окошками, менюшками, кнопочками, пиктограмками и прочим??? Я использую Microsoft Visual Studio 6.0 Enterprise Edition, но все книги о Visual C++, которые мне приходилось видеть, рассказывают восновном только о всяческих финтиклюшках типа мастеров того-сего, которые (как они говорят) делают за вас всю работу... но по моему опыту (хоть он и очень невелик) общения со всяческими мастерами (не по программированию) от них добится чего-либо полезного абсолютно невозможно -- только голову морочат своими дурацкими вопросами... да и вообще хотелось бы хотя бы понимать общие принцыпы программирования под виндоус (а я в этом, как и в МФС и прочих фигнях этого типа, полный нуль)... я даже не понимаю как комп решает, что вот это мы будем запускать с окошками и кнопочками, а это в чернобелом исполнении с буковками
и цыферками... слыхал что для этого надо заполнять какие-то классы типа WNDCLASSA (или как его там) из файла "WINUSER.H" но так ли это и как ето делать я не имею ни малейшего понятия... Короче говоря, пожалуйста помогите мне найти хорошую литературу при помощи которой, зная лишь основные принцыпы объектно-ориентированого программирования на С++, и умея писать лишь консольные приложения, можно было бы научиться писать програмы под виндоус... Идеальный вариант, чтоб материал был ориентирован на MS Visual C++ 6.0 EE... Пожалуйста... помогите... и если вдруг на указаную вами книгу найдется ссылка, по которой её бы можно было купить в Украине, то пожалуйста укажите этот линк... буду страшно благодерен... И еще чуть чуть о С++... Меня давно интересует вопрос как в консольном приложении реализовать строку типа: Enter any number or enter "q" to quit: ... то бешь как
заставить программку принимать одновременно от пользователя как численную так и символьную переменную??? у кого есть какие идеи??? пожалуйста без MFC и прочего... на худой конец стандартная библиотека С++... И напоследок... правда ли, что Windows/Unix/Linux написаны на С++????? или это у меня галюны??? И еще раз напоследок... Как вы относитесь к "Венгерской нотации"??? просто, я как почитал названия некоторых классов, перемменых и тому подобного, в которых она использовалась, так аш прозрел... неужели это вообще можно прочитать??? и неужели это помогает в процессе написания кода??? и если это так полезно, что сама Майкрософт это придумала, то может и мне стоит попробовать??? P.S. Всем ответившим, большое украинское дякую...
Здравствуйте, IamPlasticIt'sFantastic! Отвечу тебе о "Венгерской нотации". Все умные дяди (ведущие признанные теоретики и практики теории программирования) в один голос кричат что это все фуфло для случаев придумывания синонимов стандартных типов. Но Майкрософт любит делать свои стандарты, поэтому, если пишешь под винду, то придется или смирится или использывать приведения к стандартным типам если компилятор не пропускает.
Ответ отправлен: 25.10.2002, 19:32 Отправитель: Yuri Gordienko Отвечает Avl2k
Доброе время суток, IamPlasticIt'sFantastic! 1. Рихтер "Windows для профессионалов" - по-моему неплохая книжка. 2. Ничего сложного. Просто надо всегда вводить с консоли символьную строку, и если не "q", то конвертировать ее в число (естественно с проверкой). Никакого MFC, все делается на CRT и/или STL. 3. Да, Unix написан на C, Windows на C/C++, критичные части - на ассемблере. В этом ничего необычного - проще поддерживать и переносить. 4. В "Венгерской нотации" в общем-то ничего сложного, и читается она достаточно легко, просто надо знать, как конструируется префикс, например lpsz, lpcstr и т.д. Её нужно знать, чтобы читать исходники Microsoft :) Лично я при написании программ ее не использую, поскольку сейчас практически все среды имеют helper'ы, подсказывающие типы объектов (для Visual C++ рекомендую Visual Assist - часто
очень помогает, хотя иногда глуп как пробка :), а читать программу с листа не приходится. С уважением, Avl2k. Ответ отправлен: 25.10.2002, 18:24 Отправитель: Avl2k Отвечает Gibbel
Доброе время суток, IamPlasticIt'sFantastic! Я думаю, тебе стоит приобрести MSDN - если не сейчас, то в последствии он тебе пригодиться (Кстати, он в MS VS6 входит...). Там и примерчиков разных дофигищи... Ответ отправлен: 25.10.2002, 13:50 Отправитель: Gibbel Отвечает Sensey
Доброе время суток, IamPlasticIt'sFantastic! Та нi за що! 1) MSDN. F вообще я этим(программированием под Вин) не занимаюсь. Поэтому не подскажу. 2) Получаешь обычную текстовую строку, а потом посимвольно анализируешь и переводишь цифры в число. 3) Правда. 4) Отлично отношусь. То есть не отношусь, а пользуюсь. Только может быть упрощенной. Мои варианты Имя типа начинать с Т Имя ссылки на этот тип с P однотипные константы для одной тематики с двух маленьких букв. Например - статус stXXX, цвета - clXXX и тп Всегда писать осмысленные имена. Пускай они даже и длинные будут, типа SetSignalWithoutFaza - для установки сигнала без фазы :) В общем - создай для себя свои правила написания имен переменных, функций, констант и тп.
Ответ отправлен: 25.10.2002, 14:07 Отправитель: Sensey Отвечает Jadd
Приветствую Вас, IamPlasticIt'sFantastic! По-порядку. 1)Винды изначально писались на Паскале, но поздние версии начиная с 3.0 и выше писаны на Сях. Это правда. Юниксы писались на сях и части на асме - тоже чистая правда, хотя прародители юниксов просто не могли быть на них писаны, т.к. сей еще не существовало. 2)"Венгерская нотация" - вещь правильная. Писать, используя "венгерскую нотацию" - признак хорошего тона в програзме, этим ты сможешь облегчить понимание твоих программ для тех, кто будет править твой код. Книги надо подбирать. Идешь в магазин и смотришь те книги, где более понятно и полно для тебя идет изложение материала. Один совет: никогда не бери книги наших авторов - ужбольно много они воды льют. Ответ отправлен: 25.10.2002, 14:50 Отправитель: Jadd Отвечает vitya
Доброе время суток, IamPlasticIt'sFantastic! Отвечу про венегерскую нотацию: если привынуть то она очень удобна. Одного взгляда на переменную достаточно, чтобы определить ее тип, место определения и время действия. Многим это не нравится, но я лично доволен. А книжек хороших я никогда не встречал - чуть лучше чем другие книга Круглинского и others, но, учти, она достаточно дорога. Для вообще программиста под форточки важная книжка - Джеффри Рихтера - Виндовс для профессионалов. Ответ отправлен: 25.10.2002, 15:09 Отправитель: vitya
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.