forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   DLL на Microsoft Visual C++ 6.0 (http://forum.boolean.name/showthread.php?t=8780)

Knightmare 06.08.2009 21:31

Ответ: DLL на Microsoft Visual C++ 6.0
 
Цитата:

Сообщение от ArtemkA (Сообщение 113256)
чтобы писать на C++ надо знать что писать, а в этом туториале объяснение на английском, а по английскому я не ботаю

А тебе не кажется что это исключительно твои проблемы? Не знаешь английский - учи. Не хочешь учить - тебе нечего делать в программировании. Все что можно найти на русском (за исключением перевода некоторых книг) - является унылым гавном, а если автор русский - 100%, сколько русских книг по компьютерной тематике в руках не держал - везде полный бред, автор даже близко чаще всего не знаком с темой, в прочем на то есть ряд причин.
Цитата:

чтобы писать на С++ ничего кроме блокнота, командной строки и компилятора ненадо
Я тебе могу показать как писать проги в командной строке на машинном языке:-D

NitE 06.08.2009 21:42

Ответ: DLL на Microsoft Visual C++ 6.0
 
был-бы признателен еслиб ты показал как с помощью 101001 написать hello world, или хотяб на ассемблере, но без сторонних программ

Knightmare 06.08.2009 21:46

Ответ: DLL на Microsoft Visual C++ 6.0
 
Легко. Start->Run...->cmd->debug
Хэлп прилагается (-?). За соответствием асм команд мнемоникам процессора идти на intel и качать доки соответствующие. Ах да, 16 битный режим (возможно и в 32 бита переводится).
Написать можно хоть что, ну разве что это смахивает на какое-то извращение =)

NitE 06.08.2009 22:04

Ответ: DLL на Microsoft Visual C++ 6.0
 
а что насчет 101001 ?

Knightmare 06.08.2009 22:12

Ответ: DLL на Microsoft Visual C++ 6.0
 
Что? Все просто. Как извстно ассемблер является приближением к машинному языку (тем не менее команды машинного языка транслируются процессором в специфичный микрокод, т.е. одна команда на асме нем не менее может разложится на нескольо реальных машинных, но нам это не инетерсно, это область деятельности инженеров интела и им подобных). Все было бы шоколодно если не одна проблема - одной команде асма может соотвествовать десяток машинных (все завист от ее аргументов и т.п., т.е. с регистрами она имет один номер, в памятью другой и т.п.). Для того чтобы писать на машинных кодах (а типично писать свои ЯП в целом и ассемблеры в частности), необходимо знать эти соответствия. Узнать их можно из доков интела, кроме того можно и так найти их, отдельными файликами, где указываются все инструкции асма и соответствующие им мнемоники (а также кол-во тактов которые они кушают). Т.е. все сводится к чему:
1) Берем команду асма
2) Ищем мнемонику (в зависимости от семантики)
3) Вписываем байт нужный на место, потом дописываем аргументы (если надо)
4) Переходим к слдедующей
На выходе мы получаем машинный код, готовый к выполнению. Тем не менее просто так его не запустить. Для этого нужен загрузчик. В Windows юзается PE (portable executable). Т.е. следуя формату формируем файл, который и является нашим привычным ехешником.
Подробнее писать некогда - кофе стынет =) Да и не место.

ArtemkA 07.08.2009 01:18

Ответ: DLL на Microsoft Visual C++ 6.0
 
эх, развели тут срань.....лан, разберусь


Часовой пояс GMT +4, время: 19:00.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot