[offtop]Galkov, выше так и написал[/offtop]
Этот топик читают: Гость
Ответов: 4631
Рейтинг: 749
|
|||
карма: 26 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Netspirit писал(а): а какой смысл в doDestroy?А вдруг понадобится удалить событие внутри схемы. А так получится, что оно будет висеть, пока не закроется приложение. |
|||
карма: 22 |
|
Ответов: 4631
Рейтинг: 749
|
|||
А что значит "удалить событие"? Чтобы оно больше не возникало? Так не делать doSet или отключать WaitObject...
|
|||
карма: 26 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Netspirit писал(а): А какой смысл в doDestroy?Глупости все это. Окамм писал(а): Не вводи новые сущности без необходимости |
|||
карма: 9 |
|
Ответов: 4631
Рейтинг: 749
|
|||
Вообще, doCreate, doDestroy можно было бы использовать только если имя события должно задаваться в runtime. Практического смысла в этом немного, но если бы нужно было, достаточно сделать св-во Name внешним и всё.
nesco писал(а): понадобится лишний компонент |
|||
карма: 26 |
|
Разработчик
Ответов: 26163
Рейтинг: 2127
|
|||
Так, давайте тогда последний код, с учетом наличия свойства ManualReset
------------ Дoбавленo в 15.34: Netspirit писал(а): Нет doCreate - не понадобится.Я уже понял, когда написал пост, вот поэтому его и стер |
|||
карма: 22 |
|
Ответов: 4631
Рейтинг: 749
|
|||
карма: 26 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Блин, за вами не поспеешь
------------ Дoбавленo в 15.53: Netspirit, ты неправильно понял фишку.
Смотри, как работает Pchar(string): эта собака (дельфи, в смысле) проверяет полученный указатель на ноль. Если ненулевой - тупо его и возвращает. Если нулевой - возвращает свой внутренний константный адрес, по которому записан нулевой байт (один). Спрашивается - оно нам надо... Поверь мне на слово - я лично все это смотрел "по байтикам" Правильно так:
------------ Дoбавленo в 15.57: Вы как хотите, а я домой пошел |
|||
карма: 9 |
| ||
файлы: 1 | eventsex.rar [953B] [272] |
Ответов: 4631
Рейтинг: 749
|
|||
Я вообще-то исхожу из соображения, что @string <> @string[1]. Винде требуется второй случай.
Galkov писал(а): подставляет свой внутренний константный адресЯ так подозреваю, там должно быть одинаковое поведение: есть переменная/аргумент типа string, значит он уже инициализирован как <len><counter>#0
И что PChar(string), что @string[1] возвращают указатель на #0, тогда как @string возвращает указатель на <len>. Нет? Ща в Olly погоняю... ------------ Дoбавленo в 16.12: Действительно, смысл есть. Ок, пусть будет @_prop_Name. |
|||
карма: 26 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Netspirit писал(а): Я так подозреваю, там должно быть одинаковое поведение: есть переменная/аргумент типа string, значит он уже инициализирован как <len><counter>#0 Переменная типа string - это 32-х битный указатель именно на текст. По смещению -4 лежит Length (длина текста), а по смещению -8 лежит RefCount (счетчик ссылок). Если мне не изменяет мой склероз. Да, Дельфи гарантирует терминальный нулик. НО нулевой длины не бывает - в таком случае динамическая память под строку высвобождается, а указатель (тот самый string) становится нулевым. И что занимательно - именно это нам и надо. И именно по этой причине, вышеупомянутый Pchar занимается проверочками - он честно гарантирует ненулевой указатель. То есть, нам надо, просто имеющийся уже у нас указатель - подставить в аргумент winApi. Спрашивается, зачем нам вызов какой-то функции из модуля System... Да и еще если предварительно длину проверять (что тоже: сначала проверит указатель, и, если уж он ненулевой, то вернет поле Length, а иначе - ноль). Полный же бред получается Типа: "Масло бутербродное. Что в переводе означает - масло для хлеба с маслом!" В принципе, мне даже проверять не хочется, может оно и так заработает. Это все просто беседа больше для понимания - чего там происходит на самом деле. Так вот: для @string - не происходит НИЧЕГО. И это есть хорошо ------------ Дoбавленo в 17.08: Кстати, код то я выложил, но я его не проверял. ВААБЩЕ. И все равно не поспел! Так что не судите строго, если чего |
|||
карма: 9 |
|
Ответов: 4631
Рейтинг: 749
|
|||
Для интереса, вот что там происходит:
Galkov писал(а): а указатель (тот самый string) становится нулевым |
|||
карма: 26 |
|
Ответов: 9906
Рейтинг: 351
|
|||
Netspirit писал(а): там выполняется команда LEA, которая возвращает некий адресТочно - фигня какая-то Нужен MOV, а не LEA Щаз... ------------ Дoбавленo в 18.28: Netspirit писал(а): Другими словами, в CreateEvent передаётся не nil. Но на несколько инструкций оптимальней.1) Это мы поправим (кажется надо @_prop_Name[1] - проверю щаз). Будет MOV 2) Вызов подпрограммы (там тоже команд пять, наверное) - это вам не баб щупать. Это сброс конвейера дважды Если не считать того, что MSDN, вроде бы, просит NULL... а Pchar как раз гарантирует обратное. ------------ Дoбавленo в 18.58: Все понял. Надо вот так:
И тогда будет так:
|
|||
карма: 9 |
|
Ответов: 964
Рейтинг: 12
|
|||
Совершенно левая мысль что происходи с памятью в DLL?
То есть что будет если ШТАТНО выделить память обратившись к DLL из одного процесса а прочитать из другого ? (Заранее извиняюсь если идея явный бред пришла только, что в виде офонаризма ) |
|||
карма: 0 |
|
Ответов: 9906
Рейтинг: 351
|
|||
AlexKir писал(а): Совершенно левая мысль что происходит с памятью в DLL?И ей пользуются. И больше ее от этого не становится. AlexKir писал(а): То есть что будет если ШТАТНО выделить память обратившись к DLL из одного процесса а прочитать из другого ?А удалять должен тот, кто выделил. ------------ Дoбавленo в 19.11: У меня тоже совершенно левая мысль возникла... А самому освоить некоторые ФУНДАМЕНТАЛЬНЫЕ вещи - религия не позволяет, что ли |
|||
карма: 9 |
|
Ответов: 964
Рейтинг: 12
|
|||
Разумеется я стараюсь сам разбираться .... Однако, тут если знаешь то ответить не проблема .(Сам именно так стараюсь действовать ) И у меня в сетевой оси хайасм и лазарус разве что посмотреть на схемы формы код годятся . --------------------------------------- Зы[flood] Да...Глубокомысленные заявления штука сильная особенно для доморощенных псевдо интеллигентов вроде меня .... Сразу начинаешь гадать а что-же имелось собственно ввиду . Но мой уже вроде немалый опыт "интернето плаванья" подсасывает что часто это просто пустая фигура речи ... Уважаемый Галков я действительно именно такой каким показываюсь объективно неплохая сообразительность у меня часто соседствует с махровой глупостью .. В чем по счастью в чем обычно хватает ума и воспитания честно признаться Но поскольку других мозгов у меня нет использую те что имеются [/flood] |
|||
карма: 0 |
|