Сейчас на форуме: _MBK_ (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Прошу объясните, зачем???
Посл.ответ Сообщение

Ранг: 2.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 13 октября 2010 09:40 · Поправил: magistr011
· Личное сообщение · #1

Вот код программы:

ax07.asm:
.386
.model flat, stdcall
option casemap :none ; case sensitive
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
MsgBoxCaption db "It's my first command line for Win32",0
MsgBoxText db "Аргументы командной строки отсутствуют",0
.code

start:
call GetCommandLine
mov ECX,512d
add ECX,EAX

unquote:
inc EAX
cmp EAX,ECX
jz NO
cmp byte ptr[EAX],22h
jnz unquote

Arg_search:
inc EAX
cmp byte ptr[EAX],0
jz NO
cmp byte ptr[EAX],20h
jz Arg_search



push 0
push offset MsgBoxCaption
push EAX
push 0
call MessageBox

push 0
call ExitProcess

NO:
push 0
push offset MsgBoxCaption
push offset MsgBoxText
push 0
call MessageBox

push 0
call ExitProcess

end start

exeшник в приложении...

в командной строке надо написать, после пути к файлу, какую-нибудь ерунду и она будет высвечена в окне... Для чего это надо впринципе??? Для чего нужны аргументы такие???
http://bitfry.narod.ru/08.htm Здесь рассказывается про то, эту программу надо запускать с каким-нибудь аргументом, тогда она отработает как надо... Эта программа извлекает аргументы, переданные через командную строку, и сообщает их через MessageBox на экран. Я всё понимаю, что в этой программе, но никак немогу понять, аргумент зачем??? Ниразу, ниодну программу я не запускал ни с каким аргументом... И для чего вообще аргумент нужен??

da24_12.10.2010_CRACKLAB.rU.tgz - prax07.exe



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 13 октября 2010 10:04
· Личное сообщение · #2

открой, к примеру, консольный Rar или досовское окно - и думаю сразу станет всё понятно



Ранг: 2.6 (гость)
Активность: 0.010
Статус: Участник

Создано: 13 октября 2010 11:11 · Поправил: magistr011
· Личное сообщение · #3

Ну понятно, что в досе адрес к exeшнику в кавычках, после кавычек можно всё что угодно написать... И это выведется на экран, только непонятно зачем... Было бы это что-то типа пароля, я понял бы, а так это просто фишка такая... Типа: "Во как можно на асме прикалываться..." Мне непонятна сама суть этого аргумента, это просто так или важно понять для дальнейшего обучения...




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 13 октября 2010 12:45
· Личное сообщение · #4

Суть аргумента в том, что в программу можно передавать параметр. К примеру, линуксовые программы почти все с параметрами. Тому же рару консольному можно дать параметр, типа какой файл упаковать и как, без возможности обработки параметров он бесполезен.



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 13 октября 2010 12:52
· Личное сообщение · #5

Ты видимо для кого-то выложил текст этой программы, но сам прочитать его забыл?
Аргумент, который ты вводишь при запуске программы - это и будет текст, который выведется в MessageBox. Если тебе надо при запуске выводить 10 разных сообщений - будешь 10 раз переписывать код программы? Или проще воспользоваться командной строкой (аргументом, параметром) ?

Я же тебе писал - открой консольный RAR (или любую досовскую команду) и посмотри все его опции. После этого ты просто обязан понять что такое аргументы и для чего они нужны.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 14 октября 2010 00:28
· Личное сообщение · #6

Либо тролие, либо клинический случай. Закрыто

-----
EnJoy!



 eXeL@B —› Вопросы новичков —› Прошу объясните, зачем???
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати