|
|
#1
|
||||
|
||||
Приведение типов
В Дельфи
Код:
function myproc(user : Pointer) : QWORD; stdcall; begin Result := TMyClass(user).field.field; end; Код:
unsigned long long WINAPI myproc(void *user) { CMyClass *pMyClass = (CMyClass *) user; return = pMyClass->field.field; } Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#2
|
||||
|
||||
Как вариант еще и так можно:
Код:
(foo as TObject).Bar Ты в х64 бабахаешь (судя по QWORD)? — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
angvelem (15.05.2013)
|
#3
|
||||
|
||||
Не прокатывает.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#4
|
||||
|
||||
Можно
Код:
unsigned long long WINAPI myproc(void *user) { return ((CMyClass *)user)->field; } jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
angvelem (15.05.2013)
|
#5
|
||||
|
||||
Это был мой первый вариант написания, с него и началась свистопляска с компилятором. Ну не хочет он его воспринимать.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#6
|
||||
|
||||
Только обратил внимание. Привычка Дельфиста писать = (после return), хотя одна ошибка ушла, но поле класса недоступно.
Чёрт бы побрал этот С (на ассемблер было легче переписать). В данном случае он не видит поля, пока они находятся в секции private. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 15.05.2013 в 01:02. |