169 похожих чатов

Вот тут с proc решил разобраться написал на нем функцию

с двумя переменными, что то у меня больше dworda переменные туда не лезут в 32 бита, хотел спросить это нормально?

10 ответов

1 просмотр

а почему с консолью балуетесь? с ГУИ же проще. А то с консолью все через Ж..., вернее через msvcrt.dll, хотя я разницы не вижу Ж... или msvcrt.dll. любите вы консольщики городить. format PE GUI 4.0 entry Start include 'win32a.inc' section '.data' data readable str1 db 'HelloWorld',0 section '.code' code readable executable proc messageBoxWrapper stri1 call [MessageBox],0,0,[stri1],MB_OK ret endp Start: stdcall messageBoxWrapper, str1 retn section '.idata' import data readable library user32,'user32.dll' import user32, MessageBox, 'MessageBox'

ProMiNick
а почему с консолью балуетесь? с ГУИ же проще. А т...

По-моему он совсем не это хотел сделать. Ему нужно передать два аргумента, а в функции соединить эти два аргумента (передаётся два набора байт), передать в стэк (но мы ведь знаем, что легче сразу соединить их в стэке😎) и вызвать функцию вывода, получив уже одну строку из двух И в чём то вы не правы с консолью и GUI. MessageBoxA выполнится медленнее, чем WriteConsoleA с kernel32.dll. Про msvcrt всё верно - далёкая от API ОС, по этому и медленная, да и куча лишнего там для обычного вывода.

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

это нормально. нельзя впихнуть невпихуемое. но а сишники бы тебе сказали что строки передаются по ссылке, а не по значению

Aiwan \ (•◡•) / _bot
это нормально. нельзя впихнуть невпихуемое. но а с...

Строки надо формировать в динамической памяти и никак иначе! 🤣🤣🤣

судя по тому что ты итак стек не выровнил у тя даже в таком виде не получится из процедуры своей выйти

Денис Фомин-Fomin Автор вопроса
Aiwan \ (•◡•) / _bot
судя по тому что ты итак стек не выровнил у тя даж...

да вроде нормально работает , я в дебагере проверил, закрывается и printf и getch и ret и endp отрабатывает и exitprocess к ollydbg только никак не привыкну edb как то привычнее стал, и тут при sub esp почему то в стеке ссылки на ntdll оказываются, потом уже значением затираются, не понятно что это туда влетает или было уже там

Денис Фомин-Fomin Автор вопроса
Aiwan \ (•◡•) / _bot
судя по тому что ты итак стек не выровнил у тя даж...

а ты имеешь ввиду align 4 перед proc сделать, что то типа того?

Денис Фомин-Fomin Автор вопроса
Денис Фомин Fomin
да вроде нормально работает , я в дебагере провери...

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта