Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Code Review: поясните, плиз. / 7 сообщений из 7, страница 1 из 1
06.10.2004, 16:42
    #32726470
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
В статье " An OLE Control for Creating Win32 Services in Visual Basic " есть такой фрагмент кода:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Figure  5 . Service Thread

DWORD CNtSvcCtrl::ServiceThread(LPVOID)
{
    BOOL b;

     // Get a pointer to the C++ object. 
    CNtSvcCtrl* pService = m_pThis;

    SERVICE_TABLE_ENTRY st[] = {
        {m_pThis->m_szServiceName, ServiceMain},
        {NULL, NULL}
    };

    m_pThis->DebugMsg(
        TEXT("Calling StartServiceCtrlDispatcher()"));

     // Call the services dispatcher. This call blocks 
     // until the service stops. 
    b = ::StartServiceCtrlDispatcher(st);

    m_pThis->DebugMsg(
        TEXT("Returned from StartServiceCtrlDispatcher()"));

    return b;
}


Вопрос: для чего требуется строка CNtSvcCtrl* pService = m_pThis; ?

Спасибо
...
Рейтинг: 0 / 0
06.10.2004, 17:49
    #32726665
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
Ну как ,
вообщем я так понял
что типа

есть обьект CNtSvcCtrl

в нем вызывается метод Который в свою очередь создает
новый процесс/нить ..

перед этим он типа передает ссылку на себя

m_pThis = this;

и в этом процессе/нити он работет типа сам с собой ...

ЗЫ.
сцылку не смотрел в Опере не хочет открыватся ..






 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
07.10.2004, 12:55
    #32727840
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
Ну нет. Я так понимаю, что в строке:

Код: plaintext
CNtSvcCtrl* pService = m_pThis;

объявляется переменная с именем pService, которая есть указатель на объект типа CNtSvcCtrl. И переменная инициализируется значением m_pThis. Так вот, в коде процедуры она (pService) не используется, а так как переменная локальная, то нигде более она не может использоваться, ибо будет уничтожена при выходе из процедуры (так?). Вот я и удивился - просто оставили код левый что ли...
...
Рейтинг: 0 / 0
07.10.2004, 13:25
    #32727955
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
код не левый, он с комментарием.
_______________
так жить нельзя.
...
Рейтинг: 0 / 0
07.10.2004, 14:00
    #32728062
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
объявляется переменная с именем pService, которая есть указатель на объект типа CNtSvcCtrl

Ну да именно это я и имел ввиду ...
...
Рейтинг: 0 / 0
07.10.2004, 19:07
    #32728787
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
snakeкод не левый, он с комментарием.
_______________
так жить нельзя.

Ну хорошо, комментарий: Get a pointer to the C++ object.
Ну и зачем этот указатель нужен?
...
Рейтинг: 0 / 0
08.10.2004, 09:17
    #32729143
snake
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Code Review: поясните, плиз.
если серьезно:
то если CNtSvcCtrl* не какой-нибудь макрос, то вовсе этот указатель не нужен(судя по коду функции).

________________________
jimmers, так жить нельзя.

;)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Code Review: поясните, плиз. / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]