Первоначально опубликовано kill
Если клиент начинает обращаться к незапущеному еще серверу, последний выдает ошибку типа "инструкция там-то, обратилась к памяти по адресу тому-то. ... Выяснилось, что он возникает при запуске процедуры регистрации сервера (RegisterOPCServer) и до запуска конструктора сервера. |
У меня регистрация сервера происходит при запуске программы. Для этого в код проги на Delphi надо добавить строку
initialization
RegisterOPCServer(ServerGUID, ServerVersion, ServerDesc, ServerVendor, TDemo.Create)
После этого сервер регистрируется в системе и проблем с его вызовом не возникает.
Если сервер не запущен, но инициализирован подобным образом, то при обращении к нему со стороны клиента он автоматически запускается (как и предусматривает технология ОРС).
Минус подобного способа (регистрации в момент запуска программы). Если я добаляю/убираю в ходе работы сервера теги/группы тегов, то подобные изменения клиент увидит только после перезапуска сервера (те при его перерегистрации). А добавление тегов необходимо, например, при изменении конфигурации устройств, подключаемых к серверу.