Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 |

 

  Вопрос: SendMessage() Добавлено: 26.02.06 20:20  

Автор вопроса:  Sacred Phoenix | ICQ: 304238252 

Ответить

  Ответы Всего ответов: 40  

Номер ответа: 16
Автор ответа:
 ANDREY



Вопросов: 0
Ответов: 33
 Профиль | | #16 Добавлено: 28.02.06 13:26
Ты можешь сделать push al ?? Или push dh ???
Да.
Я не говорю о том, что данные можно положить только с помощью push. И способов положить я знаю наверняка поболее чем ты
Дурацкое утверждение основанное на непомерной любви самого себя.
2 Мб строка в стэк не поместится, представь себе, это еще одно ограничение. А вот скажем в 1000 байт - запросто.

-----

И еще не веди себя как человек владеющий набором комплексов неполноценности, это никому не к лицу. Не надо изворачивать фразами "открою вам страшную тайну" и "Думай, прежде чем говорить". Это показывает меру твоего вомпитания а не степень знаний.
Ты недавно изучил ассемблер - молодец. Я его уже давно знаю, и юзаю в отдельных моментах, и хоть это и не в моих привычках раздуваться от важности, можеш почитать скажем содержимое этих ссылок:
http://bbs.vbstreets.ru/viewtopic.php?t=23423
http://bbs.vbstreets.ru/viewtopic.php?t=23362
http://vbstreets.ru/VB/Articles/66227.aspx
Если у тебя есть хоть немного объективной самооценки, ты поймеш, что мне просто нет смысла в очередной раз кому то чтото доказывать, это уже пройденный этап. В конце концов дел у меня хватает :)

Ответить

Номер ответа: 17
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #17 Добавлено: 28.02.06 13:37
ОК, буду писать помещает в стек

И вопрос: а писать незачот тебя не коробит?

Ответить

Номер ответа: 18
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #18 Добавлено: 28.02.06 13:59
О великий VB-DLL 'щик ANDLL!
Специально для тебя, человека, который давно уже знает ассемблер, от человека, который не знает его вообще:

INSTRUCTION SET REFERENCE, N-Z
PUSH—Push Word or Doubleword Onto the Stack
Description

IA-32 Architecture Compatibility
Opcode   Instruction         Description
FF /6    PUSH                r/m16 Push r/m16.
FF /6    PUSH r/m32          Push r/m32.
50+rw    PUSH r16            Push r16.
50+rd    PUSH r32            Push r32.
6A       PUSH imm8           Push imm8.
68       PUSH imm16          Push imm16.
68       PUSH imm32          Push imm32.
0E       PUSH CS             Push CS.
16       PUSH SS             Push SS.
1E       PUSH DS             Push DS.
06       PUSH ES             Push ES.
0F A0    PUSH FS             Push FS.
0F A8    PUSH GS             Push GS.

INSTRUCTION SET REFERENCE, N-Z
PUSH—Push Word or Doubleword Onto the Stack
Description
Decrements the stack pointer and then stores the source operand on the top of the stack. The
address-size attribute of the stack segment determines the stack pointer size (16 bits or 32 bits),
and the operand-size attribute of the current code segment determines the amount the stack
pointer is decremented (2 bytes or 4 bytes). For example, if these address- and operand-size
attributes are 32, the 32-bit ESP register (stack pointer) is decremented by 4 and, if they are 16,
the 16-bit SP register is decremented by 2. (The B flag in the stack segment’s segment descriptor
determines the stack’s address-size attribute, and the D flag in the current code segment’s
segment descriptor, along with prefixes, determines the operand-size attribute and also the
address-size attribute of the source operand.) Pushing a 16-bit operand when the stack addresssize
attribute is 32 can result in a misaligned the stack pointer (that is, the stack pointer is not
aligned on a doubleword boundary).
The PUSH ESP instruction pushes the value of the ESP register as it existed before the instruction
was executed. Thus, if a PUSH instruction uses a memory operand in which the ESP
register is used as a base register for computing the operand address, the effective address of the
operand is computed before the ESP register is decremented.
In the real-address mode, if the ESP or SP register is 1 when the PUSH instruction is executed,
the processor condition.


Иди на свой vbstreet и там будешь рассказывать сказки, как ты делал push r8 и передавал 1000 байт строки в качестве параметра через стек. Там как раз твоего уровня аудитория, она может и поверит тебе.

Ответить

Номер ответа: 19
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #19 Добавлено: 28.02.06 14:21
Сорри за флуд и вмешательство в спор :)

И вопрос: а писать незачот тебя не коробит?

Если уж говорить о знании русского языка, то HOOLIGAN пишет нормальным языком (в смысле правописания) в отличие от других знатоков (утверждение основанное, человек владеющий , вомпитания а не ). Если честно, слово можеш меня коробит больше.

Ответить

Номер ответа: 20
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #20 Добавлено: 28.02.06 14:42
Круто, поехали флудить!
И вопрос: а писать незачот тебя не коробит?

Ну, я думал ты юмор поймешь :)
Если уж говорить о знании русского языка, то HOOLIGAN пишет нормальным языком

Да я не спорю, просто так уж повелось что в грамотном русском нет слова ложит. Есть синонимы, скажем кладет и т.п. "ложит" используется только как основа для однокоренных слов. Это не принципиально, но такие вещи угнетают гораздо больше чем простые опечатки :)

Ответить

Номер ответа: 21
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #21 Добавлено: 28.02.06 15:27
Да я не спорю, просто так уж повелось что в грамотном русском нет слова ложит. Есть синонимы, скажем кладет и т.п. "ложит" используется только как основа для однокоренных слов. Это не принципиально, но такие вещи угнетают гораздо больше чем простые опечатки :)

Флуд возвращается :) Я бы не стал постить, если бы это были простые опечатки. За ним такая ошибка была замечена давно. Вомпитанность - это действительно опечатка, а можеш, предполагаеш...

Ответить

Номер ответа: 22
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #22 Добавлено: 28.02.06 15:30
Да, я знаю, что слово "ложить" в правильном русском без приставки не употребляется. Как-то именно по поводу этих двух слов беседовал с одним учителем русского языка, который и просветил меня о применении этих слов.

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

Или упомянутое выше "можеш". Или перлы "стараеться", "закрываеться"

Ответить

Номер ответа: 23
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #23 Добавлено: 28.02.06 15:44
Или перлы "стараеться", "закрываеться"

Вот это самая фигня! Ну, не знают люди русского, чё делать? Вообще стоило бы поставить модератора, который бы удалял посты с систематическими ошибками (ладно раз-два ошибся, это могла быть опечатка, а когда несколько месяцев только и читаешь можеш и т.д.)

Ответить

Номер ответа: 24
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #24
Добавлено: 28.02.06 17:48

И что ? Ты сможешь сделать
mov ax,offset msgString
push ax
???
Попробуй :) Только не надо мне говорить, что можно сделать два раза push ax, т.к. это эквивалентно push eax

Да и не собираюся :) Ты просто сказал что:



Параметры в любую из функций для процессоров семейства i386 (к которым принадлежит и наши с тобой процессоры) имеют длину 4 байта.


Я могу написать функцию которая берет параметры и не в 4 байта :) Раз могу положить, значит могну взять, т.ч. не следует обобщать, что так уж и все все функции ;)

И почему ты считаешь что в кадждом параметре должна быть строка :) ? разве единичка переданная в качестве параметра не есть параметр :) ?

push r8

Это конечно перл :))

2 Мб строка в стэк не поместится, представь себе, это еще одно ограничение. А вот скажем в 1000 байт - запросто.

Даже с такими размерами - рекурсия не для тебя :))

ЗЫ
Как сказал мой батька, как-то раз... Со знаками препинания у меня в школе было все нормально... Я их ставил даже больше чем требовалось :))

2HOOLIGAN, хр людей выселять! Комьюнити у нас мирное и мы всех любим :)

Ответить

Номер ответа: 25
Автор ответа:
 ANDREY



Вопросов: 0
Ответов: 33
 Профиль | | #25 Добавлено: 28.02.06 18:15
Иди на свой vbstreet и там будешь рассказывать сказки, как ты делал push r8 и передавал 1000 байт строки в качестве параметра через стек. Там как раз твоего уровня аудитория, она может и поверит тебе
Да моего уровня. Правда и тебе подобных там хватает.... К счастью и здесь, и там, таких меньшенство.
Ну а куда мне идти... Это уже я у тебя не спрашиваю.
+Что мне будет если я покажу пример где программа кидает в стэк 2 Мб информации? Или такого совсем не бывает?

Ответить

Номер ответа: 26
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #26
Добавлено: 28.02.06 18:19
Если ты сделаешь это, я первый признаю, что ты гений

лень все читать но я думаю что возможно передать строку 2mb только с пом. SendMessage. Ща попробую.

Ответить

Номер ответа: 27
Автор ответа:
 mich



ICQ: 261800349 

Вопросов: 19
Ответов: 148
 Web-сайт: belkyokushin.net
 Профиль | | #27
Добавлено: 28.02.06 18:29
...форум по русскому языку

О, вроде получается.

Ответить

Номер ответа: 28
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #28
Добавлено: 28.02.06 18:34
Что мне будет если я покажу пример где программа кидает в стэк 2 Мб информации? Или такого совсем не бывает?


Да не, почему бывает... Указав в опциях линкера:
/STACK:4194304

Я смог запушить:
4181956 байт

то что остается (от их разности) - было заюзано системой :) Так что все нормально...

Ответить

Номер ответа: 29
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #29
Добавлено: 28.02.06 18:36
лень все читать но я думаю что возможно передать строку 2mb только с пом. SendMessage. Ща попробую.

Звон!? Где он!? ;)

Тут болтавня о том можно-ли передавать большие объемы данных через стек процесса :)

Ответить

Номер ответа: 30
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #30 Добавлено: 28.02.06 19:27
ANDREY
Не надо уходить в сторону и подменять понятия.
Мне не нужно, чтобы ты положил в стек какое-то количество байт в пределах отведенного под стек пространства.
В этом топике речь идёт о передаче строки в функцию в качестве одного из параметров. Ты утверждал, что можно передать в ф-цию именно всю последовательность символов строки, а не только её адрес.

Будь добр, пример передачи строки в WndProc в студию. Чтобы первый байт lParam'а был первым байтом строки, второй - вторым, третий - третьим и т.д. до 2097152-го символа включительно.

P.S.
Я никого никуда не гоню. Всего лишь предлагаю такого рода глупости как "push r8", "суммарная длина параметров stdcall" и "передача последовательности байт строки" рассказывать на vbstreets. И всё.

Ну так где ваш пример ? Я жду.

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам