Вверх ↑
Ответов: 1841
Рейтинг: 369
#1: 2015-06-09 14:43:05 ЛС | профиль | цитата
Nic писал(а):
С этими вызовами проблем, как мне кажется, нет. Проблемы в обработке вызовов (callback) из «дельфячего» кодогенератора.

Сейчас как раз занимаюсь проксированием структуры TCodeGenTools со всеми его методами.
Сегодня-завтра постараюсь закончить.
Посмотрим что получится.
------------ Дoбавленo в 06.53:
Ну вот, все 85 функций структуры TCodeGenTools - "проксированы"
Вот что уже удаётся получить при загрузке, сборке и запуске пустой схемы, Windows пакета:
Массив информации

Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call isReadyForAdd
Result: true
Call CheckVersionProc
Result: 0
Call buildPrepareProc
Result: 0
Call buildProcessProc
Call isDebug
Result: false
Call GetParam
Result: 0
Call sdkGetElementName
Result: 0x0
Call sdkGetElement
Result: 0x2577b50
Call GetParam
Result: 0
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call elGetFlag
Result: 522
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call elGetFlag
Result: 522
Call elGetClassName
Result: MainForm
Call elSetCodeName
Result: 0x2577b50
Call elSetData
Call elGetFlag
Result: 522
Call elGetClassName
Result: MainForm
Call elGetClassIndex
Result: 10
Call elGetCodeName
Result: MainForm_2577B50
Call elGetParent
Result: 0x2576570
Call sdkGetParent
Result: 0x0
Call elGetClassName
Result: MainForm
Call elGetFlag
Result: 522
Call elGetClassName
Result: MainForm
Call elGetClassIndex
Result: 10
Call elGetClassIndex
Result: 10
Call elGetClassIndex
Result: 10
Call elGetPropCount
Result: 38
Call elGetProperty
Result: 0x24e7788
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e779c
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e77b0
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e77c4
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e77d8
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e77ec
Call propGetType
Result: 8
Call elGetProperty
Result: 0x24e7800
Call propGetType
Result: 15
Call elGetProperty
Result: 0x24e7814
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7828
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e783c
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7850
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7864
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7878
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e788c
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e78a0
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e78b4
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e78c8
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e78dc
Call propGetType
Result: 20
Call elIsDefProp
Result: true
Call elGetProperty
Result: 0x24e78f0
Call propGetType
Result: 20
Call elIsDefProp
Result: true
Call elGetProperty
Result: 0x24e7904
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7918
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e792c
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7940
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e7954
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e7968
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e797c
Call propGetType
Result: 6
Call elGetProperty
Result: 0x24e7990
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e79a4
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e79b8
Call propGetType
Result: 8
Call elGetProperty
Result: 0x24e79cc
Call propGetType
Result: 11
Call elGetProperty
Result: 0x24e79e0
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e79f4
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7a08
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7a1c
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7a30
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7a44
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7a58
Call propGetType
Result: 20
Call elIsDefProp
Result: true
Call elGetProperty
Result: 0x24e7a6c
Call propGetType
Result: 20
Call elIsDefProp
Result: true
Call elGetPropCount
Result: 38
Call elGetProperty
Result: 0x24e7788
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: Left
Call elGetProperty
Result: 0x24e779c
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: Top
Call elGetProperty
Result: 0x24e77b0
Call propGetType
Result: 1
Call propToInteger
Result: 400
Call propGetType
Result: 1
Call propGetName
Result: Width
Call elGetProperty
Result: 0x24e77c4
Call propGetType
Result: 1
Call propToInteger
Result: 300
Call propGetType
Result: 1
Call propGetName
Result: Height
Call elGetProperty
Result: 0x24e77d8
Call propGetType
Result: 14
Call propToString
Result: caNone
Call propGetType
Result: 14
Call propGetName
Result: Align
Call elGetProperty
Result: 0x24e77ec
Call propGetType
Result: 8
Call propToInteger
Result: -16777201
Call propGetType
Result: 8
Call propGetName
Result: Color
Call elGetProperty
Result: 0x24e7800
Call propGetType
Result: 15
Call propGetValue
Result: 0x3b4ec50
Call fntName
Result: MS Sans Serif
Call fntSize
Result: 8
Call fntStyle
Result: 0
Call fntColor
Result: 0
Call fntCharSet
Result: 1
Call propGetType
Result: 15
Call propGetName
Result: Font
Call elGetProperty
Result: 0x24e7814
Call propGetType
Result: 14
Call propToString
Result: False
Call propGetType
Result: 14
Call propGetName
Result: ParentFont
Call elGetProperty
Result: 0x24e7828
Call propGetType
Result: 14
Call propToString
Result: True
Call propGetType
Result: 14
Call propGetName
Result: Visible
Call elGetProperty
Result: 0x24e783c
Call propGetType
Result: 14
Call propToString
Result: True
Call propGetType
Result: 14
Call propGetName
Result: Enabled
Call elGetProperty
Result: 0x24e7850
Call propGetType
Result: 14
Call propToString
Result: crDefault
Call propGetType
Result: 14
Call propGetName
Result: Cursor
Call elGetProperty
Result: 0x24e7864
Call propGetType
Result: 14
Call propToString
Result: True
Call propGetType
Result: 14
Call propGetName
Result: KeyPreview
Call elGetProperty
Result: 0x24e7878
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: TabOrder
Call elGetProperty
Result: 0x24e788c
Call propGetType
Result: 4
Call propToByte
Result: 1
Call propGetType
Result: 4
Call propGetName
Result: Ctl3D
Call elGetProperty
Result: 0x24e78a0
Call propGetType
Result: 4
Call propToByte
Result: 0
Call propGetType
Result: 4
Call propGetName
Result: WinStyle
Call elGetProperty
Result: 0x24e78b4
Call propGetType
Result: 2
Call propToString
Result:
Call propGetType
Result: 2
Call propIsTranslate
Result: 0
Call propGetName
Result: Name
Call elGetProperty
Result: 0x24e78c8
Call propGetType
Result: 2
Call propToString
Result:
Call propGetType
Result: 2
Call propIsTranslate
Result: 0
Call propGetName
Result: Hint
Call elGetProperty
Result: 0x24e78dc
Call propGetType
Result: 20
Call elGetProperty
Result: 0x24e78f0
Call propGetType
Result: 20
Call elGetProperty
Result: 0x24e7904
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: WidthScale
Call elGetProperty
Result: 0x24e7918
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: HeightScale
Call elGetProperty
Result: 0x24e792c
Call propGetType
Result: 1
Call propToInteger
Result: 255
Call propGetType
Result: 1
Call propGetName
Result: AlphaBlendValue
Call elGetProperty
Result: 0x24e7940
Call propGetType
Result: 2
Call propToString
Result: Form
Call propGetType
Result: 2
Call propIsTranslate
Result: 0
Call propGetName
Result: Caption
Call elGetProperty
Result: 0x24e7954
Call propGetType
Result: 4
Call propToByte
Result: 2
Call propGetType
Result: 4
Call propGetName
Result: BorderStyle
Call elGetProperty
Result: 0x24e7968
Call propGetType
Result: 4
Call propToByte
Result: 0
Call propGetType
Result: 4
Call propGetName
Result: WindowsState
Call elGetProperty
Result: 0x24e797c
Call propGetType
Result: 6
Call resAddIcon
Result: ASMA
Call propGetType
Result: 6
Call propGetName
Result: Icon
Call elGetProperty
Result: 0x24e7990
Call propGetType
Result: 4
Call propToByte
Result: 0
Call propGetType
Result: 4
Call propGetName
Result: TaskBar
Call elGetProperty
Result: 0x24e79a4
Call propGetType
Result: 14
Call propToString
Result: False
Call propGetType
Result: 14
Call propGetName
Result: DragForm
Call elGetProperty
Result: 0x24e79b8
Call propGetType
Result: 8
Call propToInteger
Result: 16777215
Call propGetType
Result: 8
Call propGetName
Result: TransparentColor
Call elGetProperty
Result: 0x24e79cc
Call propGetType
Result: 11
Call resAddBitmap
Result:
Call elGetProperty
Result: 0x24e79e0
Call propGetType
Result: 2
Call propToString
Result:
Call propGetType
Result: 2
Call propIsTranslate
Result: 0
Call propGetName
Result: SavePosName
Call elGetProperty
Result: 0x24e79f4
Call propGetType
Result: 14
Call propToString
Result: False
Call propGetType
Result: 14
Call propGetName
Result: MouseCapture
Call elGetProperty
Result: 0x24e7a08
Call propGetType
Result: 14
Call propToString
Result: False
Call propGetType
Result: 14
Call propGetName
Result: ClientSize
Call elGetProperty
Result: 0x24e7a1c
Call propGetType
Result: 14
Call propToString
Result: poNone
Call propGetType
Result: 14
Call propGetName
Result: Position
Call elGetProperty
Result: 0x24e7a30
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: ShiftLeft
Call elGetProperty
Result: 0x24e7a44
Call propGetType
Result: 1
Call propToInteger
Result: 0
Call propGetType
Result: 1
Call propGetName
Result: ShiftTop
Call elGetProperty
Result: 0x24e7a58
Call propGetType
Result: 20
Call elGetProperty
Result: 0x24e7a6c
Call propGetType
Result: 20
Call elGetFlag
Result: 522
Call elGetCodeName
Result: MainForm_2577B50
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call elGetFlag
Result: 522
Call elGetPtCount
Result: 7
Call elGetPt
Result: 0x25f08b8
Call ptGetRLinkPoint
Result: 0x0
Call elGetPt
Result: 0x25f09d8
Call ptGetRLinkPoint
Result: 0x0
Call elGetPt
Result: 0x25f0990
Call ptGetRLinkPoint
Result: 0x0
Call elGetPt
Result: 0x25f0948
Call ptGetRLinkPoint
Result: 0x0
Call elGetPt
Result: 0x25f0a68
Call ptGetRLinkPoint
Result: 0x0
Call elGetPt
Result: 0x25f0ab0
Call ptGetRLinkPoint
Result: 0x0
Call elGetPt
Result: 0x25f0b40
Call ptGetRLinkPoint
Result: 0x0
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call elGetFlag
Result: 522
Call elGetPropCount
Result: 38
Call elGetProperty
Result: 0x24e7788
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e779c
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e77b0
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e77c4
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e77d8
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e77ec
Call propGetType
Result: 8
Call elGetProperty
Result: 0x24e7800
Call propGetType
Result: 15
Call elGetProperty
Result: 0x24e7814
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7828
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e783c
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7850
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7864
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7878
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e788c
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e78a0
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e78b4
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e78c8
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e78dc
Call propGetType
Result: 20
Call propGetLinkedElementInfo
Result: 0x0
Call elGetCodeName
Result: MainForm_2577B50
Call propGetName
Result: HintManager
Call elGetProperty
Result: 0x24e78f0
Call propGetType
Result: 20
Call propGetLinkedElementInfo
Result: 0x0
Call elGetCodeName
Result: MainForm_2577B50
Call propGetName
Result: Layout
Call elGetProperty
Result: 0x24e7904
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7918
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e792c
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7940
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e7954
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e7968
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e797c
Call propGetType
Result: 6
Call elGetProperty
Result: 0x24e7990
Call propGetType
Result: 4
Call elGetProperty
Result: 0x24e79a4
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e79b8
Call propGetType
Result: 8
Call elGetProperty
Result: 0x24e79cc
Call propGetType
Result: 11
Call elGetProperty
Result: 0x24e79e0
Call propGetType
Result: 2
Call elGetProperty
Result: 0x24e79f4
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7a08
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7a1c
Call propGetType
Result: 14
Call elGetProperty
Result: 0x24e7a30
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7a44
Call propGetType
Result: 1
Call elGetProperty
Result: 0x24e7a58
Call propGetType
Result: 20
Call propGetLinkedElementInfo
Result: 0x0
Call elGetCodeName
Result: MainForm_2577B50
Call propGetName
Result: TransparentManager
Call elGetProperty
Result: 0x24e7a6c
Call propGetType
Result: 20
Call propGetLinkedElementInfo
Result: 0x0
Call elGetCodeName
Result: MainForm_2577B50
Call propGetName
Result: FormFastening
Call elGetClassIndex
Result: 10
Call elGetClassIndex
Result: 10
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call elGetParent
Result: 0x2576570
Call sdkGetParent
Result: 0x0
Call elGetCodeName
Result: MainForm_2577B50
Call sdkGetCount
Result: 1
Call sdkGetElement
Result: 0x2577b50
Call elGetFlag
Result: 522
Call sdkGetElement
Result: 0x2577b50
Call elGetCodeName
Result: MainForm_2577B50
Call sdkGetElement
Result: 0x2577b50
Call GetParam
Result: 0
Call resAddFile
Result: 0
Result: 0

Пришлось отказаться от использования структуры TCodeGenTools, т.к. она больше сбивает с толку, с её полями-указателями на функции, ещё и неудобно в неё тыкать указатели на свои функции
Так что у меня все функции находятся в массиве указателей.
Код как всегда тут: https://github.com/CriDos/HiAsm_ProxyInterface
Позже добавлю больше информации для вывода.
------------ Дoбавленo в 14.43:
Немного причесал код и добавил вывод информации об аргументах функций и их значениях на момент вызова.
Обновлённый вывод: http://pastebin.com/vmh4uGq4
карма: 1
1
Голосовали:Nic