iarspider писал(а):
Я её отдельно завернул вот какЯ бы проще сделал:
inline cardinal GetParam(WORD index, void* value)
{
__asm mov ax, index;
__asm mov edx, value;
__asm mov ecx, this;
__asm call dword ptr [ecx].pGetParam;
}
Ответов: 2125
Рейтинг: 159
|
|||
iarspider писал(а): Я её отдельно завернул вот какЯ бы проще сделал:
|
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Создание пакета GCC идёт полным ходом. В процессе разбора кодогенератора, возник вопрос:
а нафига создание MultiElement-а идёт через одно место:
Почему бы сразу на вызывать конструктор? |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
iarspider писал(а): Почему бы сразу на вызывать конструктор?Попробуй, посмотрим через какое место у тебя получится В смысле - замкни коды, чтобы работало все... |
|||
карма: 9 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Galkov, вместо того, чтобы ругаться, объяснил бы, какими особенностями и чего вызвано такое решение. Если не знашеь - то промолчи, пожалуйста.
[size=-2]------ Добавлено в 17:00 Переформулирую вопрос: чем вызов Create_hiMultiElementEx_1546EB0 лучше (хуже), чем вызов конструктора с последующим взятием члена Child? |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
iarspider писал(а): чем вызов конструктора с последующим взятием члена Child?Сначала покажи конкретно место где ты будешь его вызывать, потом можно будет сказать чем. iarspider, в Ваши годы пора бы различать ругань от обыкновенного прагматизма Скажу даже больше: ответ в этом посте НЕ ОТЛИЧАЕТСЯ по содержанию от предыдущего. Просто не нервничать надо, а думать. Никто не утверждает, что не существует иных вариантов кодирования. Покажи - будем обсуждать. |
|||
карма: 9 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Galkov, уже нашёл, где идёт вызов этого метода, и начал понимать, в чём ГФС (Глубокий Философский Смысл (с)) такого хода.
|
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Так. Почти доделал кодогенератор. Вопрос: правильно лия понял, что метод ConfToCode вызывается т.н. ECreator-ом?
|
|||
карма: 1 |
|
Ответов: 2125
Рейтинг: 159
|
|||
Правильно понял.
[size=-2]------ Добавлено в 14:19 iarspider писал(а): Почему бы сразу на вызывать конструктор?Вызов конструктора - это не просто вызов функции, а вызов соответствующего оператора new с последующей передачей указателя на выделенный кусок памяти конструктору (если объект статический, то просто вызов конструктора с фиксированным адресом). Поэтому нельзя получить указатель на конструктор объекта. А мультику нужен именно адрес функции для создания экземпляра схемы. |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Разбираюсь с make_xxx. Вопрос: вызов EndBuild происходит всегда или только при удачной компиляции?
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Всегда. Кстате в новой версии на make_xxx возложено гораздо больше обязательств в виде такого интерфейса:
|
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma, вопрос не очень понял, что имеется в видк под "имеет смысл всерьез заморачиваться над этим с применением ф-ности используемой сейчас в стандартном пакете": "не стоит заморачиваться до выхода новой версии Delphi" (в которой будут указанные ововведения), "не стоит заморачиваться до выхода Hiasm 4", "не стоит заморачиваться вообще"?
Насчёт объёма: да, объём получается немаленьким, но: а) при использовании статической линковки не со всеми, а только с нужными, частями библиотеки можно уменьшить объём б) UPX позволяет (под виндой) получать существенно меньшие файлы |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
iarspider, вопросом на вопрос - это неправильно
Сначала ты отвечаешь на: Dilma писал(а): хотелось бы в общих чертах увидеть описание технологии пакетаА потом будет уже совершенно логичен ответ на твое: iarspider писал(а): вопрос не очень понял, что имеется в виду под |
|||
карма: 9 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Эх... Ну не умею я описывать свои идеи...
Идея пакета такова: на основе wxWidgets писать на HiAsm программы под Linux и PPC. "Штатный" пакет PPC не устраивает по двум причинам: во-первых, он находится в зачаточно-заброшенном состоянии, во-вторых он намертво привязан к M$овскому компилятору (я честно долго мучался, пытаясь хоть как-то откомпилировать минимальный проект с помощью GCC, но бросил это, так как для работы с GCC надо переписывать весь пакет). |
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
iarspider, опять неправильно Во-первых, это описание уже давалось и не раз, во-вторых, там нет ни слова о самой технологии. Технология это процесс в результате которого получается некоторый продукт. Ты же дал описание самого продукта. Хотелось бы услышать нечто вроде:
"Пакет Delphi представляет из себя упрощенную объектно ориентированную модель метод-событие. Каждый компонент пакета не зависимо ни о от чего представляет из себя экземпляр класса со своими полями(свойствами и событиями) и функциями(методами). Кодогенератор при компиляции проекта строит списки таких объектов с вызовом конструкторов при инициализации проекта и деструктором при его уничтожение. Так же между всеми объектами схемы строятся статические связи(слинкованные точки на схеме) в виде помещения указателей методов одного объекта в соответствующие поля событий другого. Причем поток данные-свойства эквивалентен потоку событие-метод с той лишь разницей, что может передавать данные в обе стороны." это очень краткое поверхностное описание. Для полного понимания происходящего нужно еще упоменуть про МТ, про работу ReadXXX, про InitMan и прочее. |
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma, Тогда совсем кратко: взял кодогенератор от Delphi, переписал его под cpp+wxWidgets. Коды компонентов будут основаны на PPC-шных.
|
|||
карма: 1 |
|