Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.185.103] |
|
Сообщ.
#1
,
|
|
|
Кто нибудь реализовывал OPC_BROWSE_TO в OPC_DA сервере спецификации 2.0?
может кусочек кода у кого завалялся ? |
Сообщ.
#2
,
|
|
|
Цитата Sergunchic_ @ Кто нибудь реализовывал OPC_BROWSE_TO в OPC_DA сервере спецификации 2.0? может кусочек кода у кого завалялся ? Ну не кусочек кода, ладно, хотя бы подскажите идеи и пути реализации, а может где-то примерчики все же можно посмотреть ? Неужели никто OPC серверов не писал, как говорится: в простой, плоской и доступной форме !? |
Сообщ.
#3
,
|
|
|
Ну я сейчас пишу... Там достаточно все просто... если с англишом проблем нет то по демкам все поймешь...
Если желаешь пришлю на мыло исходники примеров, с комментами... |
Сообщ.
#4
,
|
|
|
Цитата Sairex @ Ну я сейчас пишу... Там достаточно все просто... если с англишом проблем нет то по демкам все поймешь... Если желаешь пришлю на мыло исходники примеров, с комментами... С инглишем проблем нет, если можешь, кидай примеры с комментами сюда: vvetkin@mail.ru Спасибо ! |
Сообщ.
#5
,
|
|
|
Уважаемые программисты. Поломал всю голову. Пожалуйста помогите. Пишу так же OPC_DA 2_0 сервер. Сервер написал, проверил его как инпроц. Работает. Стоит задача сделать его Out Of Proc. Не получается. Кто может подсказать как - подскажите плиз. Вот код регистрации :
[MTAThread] static void Main() { Guid srv_guid = new Guid("7F7F5947-DFFE-3DC4-B1DD-60F946C10EBD"); Guid app_guid = new Guid("65822D48-38F1-4b23-83C2-E7B8F80ADE97"); RegistryKey appkey = null; RegistryKey key = null; RegistryKey keyIC = null; RegistryKey keyIC1 = null; RegistryKey keyIC2 = null; RegistryKey key2 = null; RegistryKey key3 = null; RegistryKey key4 = null; RegistryKey key5 = null; try { appkey = Registry.ClassesRoot.CreateSubKey("AppId\\" + System.Windows.Forms.Application.ProductName + ".exe"); appkey.SetValue("AppId", srv_guid.ToString("B")); key = Registry.ClassesRoot.CreateSubKey("CLSID\\" + srv_guid.ToString("B")); keyIC = key.CreateSubKey("Implemented Categories"); keyIC1 = keyIC.CreateSubKey("{63D5F430-CFE4-11D1-B2C8-0060083BA1FB}"); keyIC2 = keyIC.CreateSubKey("{63D5F432-CFE4-11D1-B2C8-0060083BA1FB}"); key.SetValue(null, "BEMN.OPC_ServerDA_205.SERVER"); key.SetValue("AppId", srv_guid.ToString("B")); key2 = key.CreateSubKey("LocalServer32"); key2.SetValue(null, System.Windows.Forms.Application.ExecutablePath); key3 = key.CreateSubKey("ProgId"); key3.SetValue(null, "BEMN.OPC_ServerDA_205.SERVER"); key4 = Registry.ClassesRoot.CreateSubKey(System.Windows.Forms.Application.ProductName); key5 = key4.CreateSubKey("CLSID"); key5.SetValue(null, srv_guid.ToString("B")); } catch (Exception ex) { MessageBox.Show("Error while registering the server:\n" + ex.ToString()); } finally { if (key != null) key.Close(); if (key2 != null) key2.Close(); if (key3 != null) key3.Close(); } fr = new Thread(Foo); fr.Start(); } private static void Foo() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run();//(new Form1()); } кусок Кода клиента который мучает : Type typeofOPCserver = Type.GetTypeFromProgID(clsidOPCserver); if (typeofOPCserver == null) Marshal.ThrowExceptionForHR(0); try { OPCserverObj = Activator.CreateInstance(typeofOPCserver); - Висит, не может создать инстанс. } catch (Exception ee) { } ifServer = (IOPCServer)OPCserverObj; мой email : (ForOPCmail@mail.ru) если есть какие то примеры COM Out Of Proc на C#, мне хотя бы регистрацию правильную... Примного благодарен |