Сейчас на форуме: bartolomeo, vasilevradislav, rmn, Magister Yoda (+7 невидимых) |
eXeL@B —› Программирование —› Литература по программированию на С++ |
Посл.ответ | Сообщение |
|
Создано: 23 декабря 2008 12:37 · Личное сообщение · #1 Добрый день, с недавнего времени меня посетила мысль, почему бы не начать кодить на таком прекрасном языке, как С++? Сэкономил бы время, т.к. реально быстрее, чем асм, и в то же время - это не Визуал Бейсик, тут что пишем, то и получаем. Проблема в том, что реально не могу найти стоящей литературы по этому вопросу. Т.е. конечно, книги некоторые есть, но там как-то больше акцент делается на программирование вообще, а не на изучение С++ как такового. Алгоритмы я уж как-нибудь и сам придумаю. Меня интересуют вопросы использования указателей, создания заголовочных файлов, статическая линковка библиотек к собственной программе, использование АПИ, т.е. что-то на подобие тьюториалов Izcelion'a, только не для асма, а для С++. Буду благодарен за ссылки. И ещё - поверьте мне, я гуглил, у меня полно литературы по С++, но, тем не менее, строка типа pNTH->OptionalHeader.SizeOfImage = CalcRealSizeOfImage(m_File.m_pMap); меня озадачивает. Помогите, люди добрые ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 23 декабря 2008 13:24 · Личное сообщение · #2 Книги от создателя языка С++, советуют: Бьерн Страуструп - ВВЕДЕНИЕ В ЯЗЫК С++ Бьерн Страуструп. Язык программирования С++ Обе у меня есть в электронном виде 2504_23.12.2008_CRACKLAB.rU.tgz - Учебники по C,C++.rar ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes |
|
Создано: 23 декабря 2008 13:26 · Личное сообщение · #3 ARCHANGEL пишет: Помогите, люди добрые pNTH указатель на структуру, поэтому доступ содержимому структуры через "->" IMAGE_NT_HEADERS32 *pNTH; сама структура верхнего уровня имеет поле OptionalHeader типа IMAGE_OPTIONAL_HEADER32 typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32; и доступ к полю вложенной структуры (OptionalHeader структура, а не указатель на структуру) через "." typedef struct _IMAGE_OPTIONAL_HEADER { // // Standard fields. // WORD Magic; BYTE MajorLinkerVersion; BYTE MinorLinkerVersion; DWORD SizeOfCode; DWORD SizeOfInitializedData; DWORD SizeOfUninitializedData; DWORD AddressOfEntryPoint; DWORD BaseOfCode; DWORD BaseOfData; // // NT additional fields. // DWORD ImageBase; DWORD SectionAlignment; DWORD FileAlignment; WORD MajorOperatingSystemVersion; WORD MinorOperatingSystemVersion; WORD MajorImageVersion; WORD MinorImageVersion; WORD MajorSubsystemVersion; WORD MinorSubsystemVersion; DWORD Win32VersionValue; DWORD SizeOfImage; DWORD SizeOfHeaders; DWORD CheckSum; WORD Subsystem; WORD DllCharacteristics; DWORD SizeOfStackReserve; DWORD SizeOfStackCommit; DWORD SizeOfHeapReserve; DWORD SizeOfHeapCommit; DWORD LoaderFlags; DWORD NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; } IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; далее вызывается функция наверняка имеющая прототип DWORD CalcRealSizeOfImag(VOID *Image); и ей в качестве параметра передается значение поля m_pMap переменной m_File, которая имеет тип структуры, например такой typedef struct _MAPPED_FILE { .... VOID *m_pMap; .... } MAPPED_FILE; MAPPED_FILE m_File; и возвращаемое значение функции присваивается pNTH->OptionalHeader.SizeOfImage Thats all ----- 127.0.0.1, sweet 127.0.0.1 |
|
Создано: 23 декабря 2008 13:42 · Личное сообщение · #4 сначала я рекомендую прочесть: Липпман - Основы программирования на C++ rapidshare.com/files/66643567/Lippman_-_C___for_Beginners__RUS_.rar ну и конечно же иметь всегда под рукой: Язык программирования C++. 3-е издание. Специальное издание. Бьерн Страуструп anatolix.naumen.ru/files/books/stroustroup_se.zip из классики могу посоветовать, на мой взгляд, очень хорошую книгу: Б. Керниган, Д. Ритчи "Язык программирования C" Третье издание. torrents.ru/forum/viewtopic.php?t=686909 ----- Nothing just happens. You choose it to happen. |
|
Создано: 23 декабря 2008 13:44 · Личное сообщение · #5 |
|
Создано: 23 декабря 2008 13:52 · Поправил: -Garrett- · Личное сообщение · #6 По API лучше Рихтера пока не читал (MSDN не обсуждается) Сейчас вышла обновленная версия книги Рихтера "Windows via C/C++" - в электронном есть только англ. вариант (пришлось купить бумажную). Пару ссылок навскидку: Рихтер: Windows для профессионалов. http://www.infanata.org/2005/10/01/windows_dlya_professionalov_.html Программирование серверных приложений для Microsoft Windows 2000 http://www.infanata.org/2007/07/01/programmirovanie_servernykh_prilozhenijj_dlja_microsoft_windows_2000.htm Другие: Системное программирование в среде Windows http://www.all-ebooks.com/2007/04/30/sistemnoe_programmirovanie_v_srede_windows.html Системное программирование в Windows 2000 для профессионалов http://www.infanata.org/computers/1146099250-sistemnoe-programmirovanie-v-windows-2000-dlja.html P.S. мое изучение C++ началось с книги Уолтер Савич "С++ во всей полноте", но найти электронную версию так и не удалось |
|
Создано: 23 декабря 2008 14:16 · Личное сообщение · #7 Книгу читать конечно классно , но это те не асм читать книгу, там и так все понятно и доступно. А вот си просто так читать и запомнить хер там. Лучшая методика по моему мнению , это скачать эти книги , положить их на полочку ))) и взять какойнить проект на Си например с Hell Knights Crew где есть проекты интересные. А потом уже решать проблемы по мере поступления. А еще с меню надо разбираться , столько всего , что глаза просто в кучу. Например проверка стэка , и еще много всякого лишнего говна в код идет. Основная работы у меня была по тому как сделать так чтобы код был только мой , и не каких кодов самопала от компилера. До сих пор по этому дделу классного материала по оптимизации размера си программ , без потерь функционала я не нашел. Может кто подскажет ? Классно решение понравилось мне , это Си вместе с АСМ , оболчка сишная код на асме. Но кросплатформенности я так понял не получится , скажем на 64 ую версию процов. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 23 декабря 2008 15:09 · Личное сообщение · #8 Ребят, всем большое спасибо, кто откликнулся на просьбу о помощи. Но... nice Лафоре у меня есть, но мне что в нём не нравиться, так это как раз то, что по С++ нифига толком, как осуществлять преобразования типов, когда GetProcAddress возвращает DWORD, а это, оказывается, не DWORD, а FARPROC. И как теперь из этого FARPROC получить дворд?. Далее не рассказывается вообще нифига про то, как эти замурчательные исходные коды перенести в Visual C++, и не в консольное приложение, а в графическое. Как самому сделать заголовочные файлы для моих библиотек, которые я написал, скажем, на асме - тоже нифига. OKOB Ну, я не совсем так уж безнадёжен, мне из этого всего непонятно было только "->" - что это за хрень? mak Да, возможно, так и будет лучше, но какой конкретно проект взять? ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 23 декабря 2008 15:15 · Поправил: mak · Личное сообщение · #9 ARCHANGEL да тоже скрытие процессов , там есть классный руткит , и сеть скрывает и папки , все в одном двиге. Возьми его и попробуй для начала скомпилить , а когда скомпилишь уже смотри внутренности и играй с ними ... или выдери часть кода себе в проект. Так быстрее научишься. Практика лучше простых знаний. а вот еще книга , она конечна тупая - но млин как она прекрасно все обьясняет для начала , то есть уже не боишься сишки ) вот ее глянь просто Фленов М.Е. - Программирование на C++ глазами хакера а потом посмотришь , все не узнаешь но поможет. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
eXeL@B —› Программирование —› Литература по программированию на С++ |
Эта тема закрыта. Ответы больше не принимаются. |