передача обьектов с помощью COM
От: Julichka  
Дата: 21.02.07 15:57
Оценка:
Доброе время суток.
Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.
Re: передача обьектов с помощью COM
От: PolDey  
Дата: 22.02.07 11:02
Оценка:
Здравствуйте, Julichka, Вы писали:


J>Доброе время суток.

J>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данны


Я дедал так: Если у тебя объекты порождены от CObject, сериализуешь объект на область памяти. представляешь эту область как SafeArray и передаешь в клиент или сервер. Там из полученого образа восстанавливаешь.

Недостаток — падает производительность.
Преимущества — легкость отлаживания (особенно утечек памяти).

Best regards
Re: передача обьектов с помощью COM
От: IvEv  
Дата: 22.02.07 11:09
Оценка:
Здравствуйте, Julichka, Вы писали:


J>Доброе время суток.

J>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

Сделай свой класс COM-объектом и передавай на него интерфейс.
Один из самых обычных и ведущих к самым большим бедствиям соблазнов есть соблазн словами: "Все так делают".
Лев Толстой
Re: передача обьектов с помощью COM
От: Аноним  
Дата: 22.02.07 15:19
Оценка:
Здравствуйте, Julichka, Вы писали:


J>Доброе время суток.

J>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

Один из вариантов — сериализовать свой объект в XML-строку и передавать как параметр типа BSTR
Re[2]: передача обьектов с помощью COM
От: Julichka  
Дата: 22.02.07 15:52
Оценка:
Здравствуйте, IvEv, Вы писали:

IE>Здравствуйте, Julichka, Вы писали:



J>>Доброе время суток.

J>>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

IE>Сделай свой класс COM-объектом и передавай на него интерфейс.


А если у меня на сервере есть уже com обьект, метод которого я вызываю и именно в него хочу вложить обьект со стороны клиента? Как поступить?
Re[3]: передача обьектов с помощью COM
От: IvEv  
Дата: 22.02.07 16:10
Оценка:
Здравствуйте, Julichka, Вы писали:

J>Здравствуйте, IvEv, Вы писали:


IE>>Здравствуйте, Julichka, Вы писали:



J>>>Доброе время суток.

J>>>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

IE>>Сделай свой класс COM-объектом и передавай на него интерфейс.


J>А если у меня на сервере есть уже com обьект, метод которого я вызываю и именно в него хочу вложить обьект со стороны клиента? Как поступить?


Определи на сервере интерфейс, а на клиенте его реализуй. Такой способ часто используется для callback-интерфейсов.
Один из самых обычных и ведущих к самым большим бедствиям соблазнов есть соблазн словами: "Все так делают".
Лев Толстой
Re[4]: передача обьектов с помощью COM
От: Julichka  
Дата: 23.02.07 11:24
Оценка:
Здравствуйте, IvEv, Вы писали:

IE>Здравствуйте, Julichka, Вы писали:


J>>Здравствуйте, IvEv, Вы писали:


IE>>>Здравствуйте, Julichka, Вы писали:



J>>>>Доброе время суток.

J>>>>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

IE>>>Сделай свой класс COM-объектом и передавай на него интерфейс.


J>>А если у меня на сервере есть уже com обьект, метод которого я вызываю и именно в него хочу вложить обьект со стороны клиента? Как поступить?


IE>Определи на сервере интерфейс, а на клиенте его реализуй. Такой способ часто используется для callback-интерфейсов.


я наверное чайник. но вот как я смогу потом передать на сервер методу com обекта екземпляр класса, интерфейс которого реализую на сервере. Интерфейс это же не совокупность данных... можно хоть примерно обьяснить? на примерах.. потому что смутно как-то.
Re[5]: передача обьектов с помощью COM
От: IvEv  
Дата: 23.02.07 11:53
Оценка:
Здравствуйте, Julichka, Вы писали:

[]
J>>>>>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

IE>>>>Сделай свой класс COM-объектом и передавай на него интерфейс.


J>>>А если у меня на сервере есть уже com обьект, метод которого я вызываю и именно в него хочу вложить обьект со стороны клиента? Как поступить?


IE>>Определи на сервере интерфейс, а на клиенте его реализуй. Такой способ часто используется для callback-интерфейсов.


J> я наверное чайник.

J> но вот как я смогу потом передать на сервер методу com обекта екземпляр класса, интерфейс которого реализую на сервере.
Передавать надо не объект, а интерфейс, который реализуется этим объектом. Интерфейс Вы объявляете на сервере, а реализуете его на клиенте, в объекте, который хотите передавать.

J> Интерфейс это же не совокупность данных... можно хоть примерно обьяснить? на примерах.. потому что смутно как-то.

Да, это не совокупность данных, но в интерфейсе Вы определите все необходимые Вам методы для манипуляции с данными объекта, интерфейс которого будете передавать в сервера на клиент.
Один из самых обычных и ведущих к самым большим бедствиям соблазнов есть соблазн словами: "Все так делают".
Лев Толстой
Re[6]: передача обьектов с помощью COM
От: Julichka  
Дата: 23.02.07 12:16
Оценка:
Здравствуйте, IvEv, Вы писали:

IE>Здравствуйте, Julichka, Вы писали:


IE>[]

J>>>>>>Возникла проблема передать в качестве параметров при вызове метода на сервере экземпляр определенного класса (созданного мной). Каким образом это можно сделать? помогите примером,или скажите чем можно воспользоваться. потому что в книгах сказано, что можно лишь определенные типы данных.

IE>>>>>Сделай свой класс COM-объектом и передавай на него интерфейс.


J>>>>А если у меня на сервере есть уже com обьект, метод которого я вызываю и именно в него хочу вложить обьект со стороны клиента? Как поступить?


IE>>>Определи на сервере интерфейс, а на клиенте его реализуй. Такой способ часто используется для callback-интерфейсов.


J>> я наверное чайник.

J>> но вот как я смогу потом передать на сервер методу com обекта екземпляр класса, интерфейс которого реализую на сервере.
IE>Передавать надо не объект, а интерфейс, который реализуется этим объектом. Интерфейс Вы объявляете на сервере, а реализуете его на клиенте, в объекте, который хотите передавать.

J>> Интерфейс это же не совокупность данных... можно хоть примерно обьяснить? на примерах.. потому что смутно как-то.

IE>Да, это не совокупность данных, но в интерфейсе Вы определите все необходимые Вам методы для манипуляции с данными объекта, интерфейс которого будете передавать в сервера на клиент.

а можно на елементарном примере обьяснить? Допустим :есть сервер — на нем есть обьект ASServer, в нем есть метод Save(..) Вот в этот метод в качестве параметра надо передать екземпляр с клиента, класса TErrorinfo. Как описать класс и интерфейс TErrorInfo чтоб выполнить передачу параметра?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.