Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает в COMe тип Picture [D6, Win95/98, Win2k]


sia ©   (2002-09-03 01:15:00) 

Смысл куска программы в передаче с удаленного компа снимка экрана клиенту (а-ля PCAnywhere и ему подобных)
Приложение компилиться, запускается (сервер тоже, разумеется запущен был ранее, чтобы зарегистрироваться),и при ButtonClick1 показывает ошибку "Критический(в 98)/Разрушительный(в 2000) сбой".
Эта же прога ,но с простыми переменными типа integer(long), String(BSTR) работает. Понимаю, что ответить может быть сложно, но как хотя бы отладить(трассировкой) сервер, если активный проект -клиентский.

На сервере:
function TTestServer.Get_Screen: IPictureDisp;
begin
GetOlePicture(form1.image1.picture,result);
end;

В клиенте:
procedure TForm1.Button1Click(Sender: TObject);
var pic:tpicture;
begin
pic:=Tpicture.Create;
SetOlePicture(pic, srv.Screen); //error
image1.Picture:=pic;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
srv:=CoTestServer.CreateRemote("siacomp");//пока локальный,
//т.е мой
end;


Ekaterina   (2002-09-03 08:32:00) [1]

To test and debug your COM server application,

1 Turn on debugging information using the Compiler tab on the Project|Options dialog box, if necessary. Also, turn on Integrated Debugging in the Tools|Debugger Options dialog.
2 For an in-process server, choose Run|Parameters, type the name of the Automation controller in the Host Application box, and choose OK.
3 Choose Run|Run.
4 Set breakpoints in the Automation server.
5 Use the Automation controller to interact with the Automation server.

The Automation server pauses when the breakpoints are reached.

Note: As an alternate approach, if you are also writing the Automation controller, you can debug into an in-process server by enabling COM cross-process support. Use the General page of the Tools|Debugger Options dialog to enable cross-process support.


Наверх

Титульная страница Поиск, карта сайта Написать письмо