![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
![]()
Пишу блокиратор области памяти для многопоточного приложения. Возникла некоторая проблема с указателем на Self.
Как обстоит дело. Если вызвать Unlock у ключа, то возникает ошибка где пытаюсь взять указатель от Self и получаю ошибку. Если же вызывать напрямую освобождение ключа через FreeLocker, то все работает как надо. Жду помощи по решению проблемы, заранее благодарен Код:
Последний раз редактировалось alexprey; 09.01.2013 в 19:53. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
TObject и все что от него(то есть любой class)
это уже указатель на сам объект. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
![]()
Пепел Феникса, в каких тогда случаях нужно использовать указатели? Для структур?
И как быть с такой конструкцией Код:
Последний раз редактировалось alexprey; 09.01.2013 в 19:56. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
взятие указателя будет нужно для структур и обычных переменных.
для объектов же просто привести переменную-объект/Self к указателю(а может и не надо, не помню) посмотрите маленький пример: Код:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 09.01.2013 в 20:00. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а что там не понятно?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
![]()
[Error] ThreadAPI.pas(22): Undeclared identifier: 'TBaseLocker'
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
![]()
В принципе все работает и так, но вот в создании ключа @Self передается неверный и поэтому из ключа я не могу обратиться к блокиратору, который выдал этот ключ
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
потому что надо просто Self, а не @Self, я что зря выше распинался?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 25.05.2010
Сообщений: 169
|
![]()
да блин не могу я просто так передать Self, потому что там конструктор принимает PBaseLocker, TBaseLocker я не могу указать, т.к. он объявлен дальше, а объявить его раньше не могу, так как тот ссылается на ключ.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатели C++ | spinogryz_ua | Помощь студентам | 6 | 01.10.2012 11:26 |
Указатели C | gignet | Общие вопросы C/C++ | 7 | 04.06.2010 23:35 |
указатели в С++ | Aleksa_ks | Помощь студентам | 3 | 27.04.2010 19:31 |
Указатели | papochka | Общие вопросы C/C++ | 2 | 14.11.2009 22:06 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |