![]() |
|
|
|
|
#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;
} |
|
#2
|
||||
|
||||
|
Как вариант еще и так можно:
Код:
(foo as TObject).Bar Ты в х64 бабахаешь (судя по QWORD)? |
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
angvelem (15.05.2013)
| ||
|
#3
|
||||
|
||||
|
Не прокатывает.
![]() |
|
#4
|
||||
|
||||
|
Можно
Код:
unsigned long long WINAPI myproc(void *user)
{
return ((CMyClass *)user)->field;
} |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
angvelem (15.05.2013)
| ||
|
#5
|
||||
|
||||
|
Это был мой первый вариант написания, с него и началась свистопляска с компилятором. Ну не хочет он его воспринимать.
|
|
#6
|
||||
|
||||
|
Только обратил внимание. Привычка Дельфиста писать = (после return), хотя одна ошибка ушла, но поле класса недоступно.
Чёрт бы побрал этот С (на ассемблер было легче переписать). В данном случае он не видит поля, пока они находятся в секции private. Последний раз редактировалось angvelem, 15.05.2013 в 01:02. |