Pascal/Delphi Как вызвать метод класса имея в распоряжении его поинтер?

Статус
В этой теме нельзя размещать новые ответы.

monobogdan

Новичок
Автор темы
64
3
Бля, я запутался.
Я пишу на Delphi, соотвественно тут совершенно другое ООП.
В теории, чтобы вызвать метод класса надо сложить поинтер заллокэйтенного класса + указатель на саму фнукцию в классе.
Но бля, как я это сделаю если VC++ еще всякое дебаг говно сохраняет в бинарнике?
 

monobogdan

Новичок
Автор темы
64
3
В VC++ это гораздо проще было бы, достаточно объявить класс и присвоить ему поинтер.
 

NarutoUA

NarutoUA
BH Team
692
1,550
Может ты уже перестанешь создавать темы для каждого вопроса и наконец откроешь для себя эту тему [https://www.blast.hk/threads/781/ ??

А по сабжу надо передать функции указатель на обьект через регистр ecx
 
Последнее редактирование:

monobogdan

Новичок
Автор темы
64
3
Может ты уже перестанешь создавать темы для каждого вопроса и наконец откроешь для себя эту тему [https://www.blast.hk/threads/781/ ??

А по сабжу надо передать функции указатель на обьект через регистр ecx
Зачем asm вставки?
Или имеется ввиду можно скопировать какой то кусок из IDA PRO?
 

FYP

Известный
Администратор
1,764
5,923
>раздел C и C++
>
:(
В теории, чтобы вызвать метод класса надо сложить поинтер заллокэйтенного класса + указатель на саму фнукцию в классе.
интересно где вы берёте такие теории, из своего воображения?
 

FYP

Известный
Администратор
1,764
5,923
А как ещё? Для каждого экземпляра класса создаются еще и свои экземпляры функций.
это в дельфи так? бедный, бедный дельфи...
честно не знаю в какой ужас превращается код классов на delphi после компиляции, но в любом другом нормальном компиляторе все функции у класса для всех экземпляров класса общие, в том числе и в MSVC.
https://ru.wikipedia.org/wiki/Соглашение_о_вызове
https://msdn.microsoft.com/ru-ru/library/k2b2ssfy.aspx
 

monobogdan

Новичок
Автор темы
64
3
это в дельфи так? бедный, бедный дельфи...
честно не знаю в какой ужас превращается код классов на delphi после компиляции, но в любом другом нормальном компиляторе все функции у класса для всех экземпляров класса общие, в том числе и в MSVC.
https://ru.wikipedia.org/wiki/Соглашение_о_вызове
https://msdn.microsoft.com/ru-ru/library/k2b2ssfy.aspx
Все благодаря стандартам, поэтому код VC++ в основном компилируется и под MinGW.
В делфи я хз как, но как то так точно должно быть.
 

monobogdan

Новичок
Автор темы
64
3
А при чем тут Delphi, я поправил фипа, в его высказывании о компиляторах, которые должны компилить классы в стиле C++
Хули тогда у явы классы компилятся в свой байткод а не в стиле плюсов как сказал FYP :D
 

NarutoUA

NarutoUA
BH Team
692
1,550
Тогда через fastcall передаешь в ecx регистре свой обьект
 
Статус
В этой теме нельзя размещать новые ответы.