Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
Имеется COM-объект, он есть класс в DLL. Необходимо из независимо выполняемых методов разных классов вызвать создание объекта таким образом, чтобы оба класса получили ссылку на один и тот же объект. Например, так: Dim m1, m2 As MyCoolServer Dim s As String Set m1 = New MyCoolServer m1.SetMess ("aaa") Set m2 = New MyCoolServer s = m2.GetMess после выполнения s = "aaa" Пример упрощенный, на самом деле создание выполняется из разных классов, но пока не работает и так. Нужно это для того, чтобы переменная серверного класса из одного клиентского класса устанавливалась, а в другом использовалась. Как можно сделать это средствами VB? Возможно ли на VB реализовать межпроцессное взаимодействие (Например, Event или Mutex)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2004, 19:07 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
так лучше: public static function GetMyCoolServer() as MyCoolServer dim a as MyCoolServer if a is Null then set a=new MyCoolServer set GetMyCoolServer=a end function ----- то, что ты хочешь можно сделать непосредственно в фабрике объекта, но это нужен С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 02:54 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
то, что ты хочешь можно сделать непосредственно в фабрике объекта, но это нужен С++ Или С# :) if a is Nothing ИМХО на VB это не получится. Static даст сттического мембера в пределах oбьекта, а человеку нужно чтобы ее разделяли все инстатнсы. Если я правильно понял. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:11 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, работает. public static function GetMyCoolServer() as MyCoolServer dim a as MyCoolServer if a is Nothing then set a=new MyCoolServer set GetMyCoolServer=a end function Это нужно куда нибудь в публичный модуль. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2004, 16:14 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
>то, что ты хочешь можно сделать непосредственно в фабрике объекта, но это >нужен С++ Нужно только на VB. На VC бы сделал. >public static function GetMyCoolServer() as MyCoolServer >dim a as MyCoolServer >if a is Nothing then set a=new MyCoolServer >Set GetMyCoolServer=a >end function К сожалению, так работает только когда все объекты, вызывающие эту ф-ю находятся в одном процессе. Сорри, сразу не написал, что надо из разных Т.е. ' Process 1 Dim m1 as MyCoolServer Set m1 = New MyCoolServer ' Можно как угодно, напр Single.Create m1.SetMess ("test passed") ' Process 2 Dim m2 as MyCoolServer Dim s as String Set m2 = New MyCoolServer s = m2.GetMess 's = "test passed" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 10:51 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
Компиль свой сервер в отдельную библиотеку(ActiveX) и вызывай функцию из нее. В результате все процессы будут обращаться к одному серверу. Удачи. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 13:25 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
>Компиль свой сервер в отдельную библиотеку(ActiveX) и вызывай функцию >из нее. В результате все процессы будут обращаться к одному серверу. Я понимаю, речь идет об ActiveX DLL. У меня так и собрано. Сервер в DLL, зарегистрировал его regsvr32, есть 2 Exe-файла, один пишет в переменную (SetMess), другой читает. Вот именно так и не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 14:49 |
|
||
|
Использование одного объекта несколькими клиентами (Singleton)
|
|||
|---|---|---|---|
|
#18+
Как именно не работает? Для второго клиента создается новый обьект? Попробуй добыть дебаг инфу в ран тайме, например, опиши состояние сервера при вызовах, все что можешь. И куда нибудь в файл, далее можно анализировать. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 14:55 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=383&tid=2169996]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 302ms |

| 0 / 0 |
