Re: Сервер без формы
От: Fantasist  
Дата: 07.11.02 20:29
Оценка:
Здравствуйте k_artem, Вы писали:

KA>Я пытался сделать резидентную прогу без создания формы в C++ Builder

KA>Написал так:

KA>void __fastcall OnWrite (TObject *Sender,TCustomWinSocket *Socket)

KA>{
KA>}

KA>...

KA>TSeverSocket *SeverSocket1 = new TSeverSocket;
ServerSocket1->>OnClientWrite = OnWrite;
KA>...

KA>Все это делалось в Console Application с VCL

KA>При компиляции выходит ошибка
KA>E2034 Cannot convert 'void (_fastcall *)(TObject *,TCustomWinSocket *)' to 'void (_fastcall * (_closure )(TObject *,TCustomWinSocket *))(TObject *,TCustomWinSocket *)'

KA>Подскажите, что делать?


Несоответствие типов. OnClientWrite — исмеет тип указателя на метод класса — это такой 8-ми битный указатель, где храниться указатель на объект, чей метод надо вызвать и указатель на саму функцию(метод). Преобразовать можно так:

((TMethod)(ServerSocket1->OnClientWrite)).Code=(void*)OnWrite;
((TMethod)(ServerSocket1->OnClientWrite)).Data=0;

Надеюсь, что так. Так я делал в Delphi, и подозреваю, что в Builder'e так же, но проверить не могу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.