Получение аргументов командной строки

Надо получить аргументы командной строки используя FASM, я делал это так:

start:

mov ebx, DWORD [ebp+4]

invoke MessageBox, 0, ebx, window_name, MB_OK

передаваемый аргумент - test , а я получаю пустое окно. Пробовал смещения и 0 и 4 и 8. При использовании:

ebp+0 - мя

ebp+4 - й)O тут еще символ 127-ой по счету в ASCII

ebp+8 - ничего нету.

Я верно понимаю что необходимый параметр это ebp+4, но что-то не то с кодировкой? приложение - 32bit, ОС - 64bit


Ответы (1 шт):

Автор решения: Илья К

При запуски процесса система ничего не передает ему по умолчанию, если ты хочешь прочитать командную строку то ты вызываешь метод GetCommandLineA и он вернет тебе указатель нам командную строку. Дальше делай с ней что хочешь.

Параметры передаваемые в С++ на самом деле получается путем добавления к твоему коду дополнительного кода не видимого тебе который выполняет эту работу.

→ Ссылка