С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Как заполнить данными шаблон Excel Здравствуйте! Как заполнить Excel таблицу? И если поможете, то можно еще узнать как нажать Enter в ячейку? С помощью \r\n? https://www.cyberforum.ru/ csharp-beginners/ thread704160.html C# Regular Expressions: распарсить HTML
Здравствуйте! У меня есть кусок HTML-кода. В браузере у меня примерно так выглядит: Имя: Иван Фамилия: Иванов ... и т.д В HTML-коде это примерно так будет: <div class=name_class> <b>Имя:</b> &nbsp;Иван
C# С клавиатуры вводится три значения числа, найти и вывести на экран сумму его цифр с клавиатуры вводится три значения числа, найти и вывести на экран сумму его цифр. https://www.cyberforum.ru/ csharp-beginners/ thread704152.html C# Как подписаться на события изменения переменной Собственно перечитал кучу книг, но везде примеры очень сложные. Гуглил не помогло. Интересуют ссылки на грамотную литературу. Так же, допустим такой пример на WPF, пускай у меня есть текстовое поле, значение его передается в переменную X, как подписаться на события изменения Х и постоянно реагировать на него. Варианта со стандартным обработчиком изменения текстового поля нет. Т.е. я... https://www.cyberforum.ru/ csharp-beginners/ thread704100.html
Скомпилированная программа не меняет системное время C#
Здравствуйте. Вопрос в следующем, хотя я и не знаю как его задать: при включенном дебагере программа изменяет системное время на ура. Когда я запускаю скомпилированный файл, то ничего не происходит, при тех же действиях системное время не меняется.
C# Использование ссылок на базовый класс https://www.cyberforum.ru/ csharp-beginners/ thread704025.html
MyDerivedClass derived = new MyDerivedClass(); // Create an object. MyBaseClass mybc = (MyBaseClass) derived; // Cast the reference. Я правильно понимаю: (MyBaseClass) derived == new MyBaseClass() ???
C# Можно ли создать многомерный list<T> Добрый вечер, нужна помощь с реализациею многомерного списка, обьясните как можно сделать двумерный список и заполнить его значениями https://www.cyberforum.ru/ csharp-beginners/ thread703920.html C# Создать проект "Русско-английский и англо-русский словарь"
Создать проект "Русско-английский и англо-русский словарь", который обеспечивает перевод слов, хранящихся в файле данных.
C# Сложение, вычитание и умножение над матрицами целых чисел https://www.cyberforum.ru/ csharp-beginners/ thread703917.html
Разработать проект, который обеспечивает выполнение операций сложения, вычитания и умножения над матрицами целых чисел. Выбор выполняемой операции осуществляет пользователь.
C# Создать класс Point (точка). На его основе создать классы ColoredPoint и Line https://www.cyberforum.ru/ csharp-beginners/ thread703889.html
Необходимо: Создать класс Point (точка). На его основе создать классы ColoredPoint и Line (линия). На основе класса Line создать классы ColoredLine и PolyLine (многоугольник). В классах описать следующие элементы: • конструкторы с параметрами и конструкторы по умолчанию; • свойства для установки и получения значений всех координат, а также для изменения цвета и получения текущего цвета;...
C# Для заданной строки s, удалить все подстроки substr
Нужно для заданной строки s, удалить все подстроки substr! Помогите пожалуйста
C# Переписать функцию из С++ под C# для микросхемы FT2232HL https://www.cyberforum.ru/ csharp-beginners/ thread703869.html
Помогите переписать функцию из FTCSPI.dll для микросхемы FT2232HL Оригинал на С++ таков typedef struct FTH_Low_High_Pins{ BOOL bPin1LowHighState; BOOL bPin2LowHighState; BOOL bPin3LowHighState; BOOL bPin4LowHighState; BOOL bPin5LowHighState; BOOL bPin6LowHighState; BOOL bPin7LowHighState;
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 30
0

Подключение модуля ActiveX: перевести код с VB .NET - C# - Ответ 3731388

21.11.2012, 16:22. Показов 3117. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет, сразу оговорюсь, что навыки программирования не высокие, но стоит задача подключить модуль Active X в C#. Есть пример на VB, надо переделать в C#, на данный момент было кое-что сделано, но встречаются ошибки. Помогите плиз разобраться.
Пример на VB:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
        ' Главный компонент системы, обеспечивающий подключение к Wialon
        Dim Wialon As Object 
        ' Коллекция доступных объектов
        Dim Units As Object
        ' Отдельный объект
        Dim Unit As Object
        ' Строка ошибки Wialon
        Dim ErrStr As String
        ' Коллекция сообщений от объекта
        Dim Msgs As Object
        ' Счетчик
        Dim i As Long
        ' Количество объектов в коллекции
        Dim CountOfUnits As Long
         ' Создание объекта для подключения к Wialon  (для 64-битных приложений — WialonActiveX64)
        Wialon = CreateObject("WialonActiveX.WialonConnection")
        ' Проверка подключения
        If Wialon Is Nothing Then
            ' Если ошибка, то вывод сообщения
            MsgBox("No Object")
            Return
        End If
         ' Установка настроек соединения через прокси-сервер
        Wialon.SetProxyMode "ProxyHost", 8080, "Login:Passw"
         ' Получение всех доступных объектов пользователю user с паролем passw,
        ' от сервера [url]https://activex.gurtam.com[/url] (префикс необходим для подключения
        ' по защищенному соединению) на 443 порту, без прокси сервера
        Units = Wialon.Login("https://activex.gurtam.com", 443, "user", "passw")
        ' Проверка доступности объектов
        If Units Is Nothing Then
            ' Если объекты недоступны, то получаем ошибку элемента ActiveX, а также ошибку от Wialon
            MsgBox("Error = " + Err.Number.ToString() + ": " + Err.Source.ToString() + " (" + Err.Description.ToString() + ")")
            ' Получение ошибки от сервера Wialon
            ErrStr = Wialon.GetLastError()
            MsgBox("Wialon error: " + ErrStr)
            Return
        End If
         ' Получение количества доступных объектов
        CountOfUnits = Units.Count
        ' Вывод сообщения о количестве доступных объектов на экран
        MsgBox("Units = " + CountOfUnits.ToString())
 
        ' Запуск цикла для перебора всех объектов
        For i = 1 To CountOfUnits
            ' Получение объекта из коллекции
            Unit = Units.Item(i)
            ' Проверка, получен ли объект
            If Unit Is Nothing Then
                ' Если объект не получен, скорее всего произошла ошибка — выход
                MsgBox("Not unit")
                Return
            End If
            ' Установка флага получения адресов по координатам. False — без адресов (быстрее). True — с адресами (медленнее).
            Unit.ResolveLocations (False)
            ' Получение сообщений от объекта за период (время в UNIX формате с 1 января 1970 г.)
            Msgs = Unit.GetMessages(1255112326, 1256312326)
            ' Проверка, получены ли сообщения
            If Msgs Is Nothing Then
                ' Вывод сообщения, что сообщения не получены
                MsgBox("No messages for unit: " + Unit.Name)
            Else
                ' Вывод количества сообщений, полученных от объекта
                MsgBox("Messages = " + Msgs.Count.ToString())
                ' Уменьшение значения счетчика ссылок для предоставленной вызываемой оболочки среды CLR
                ' (выполнять, если необходимо, явное освобождение памяти после использования объекта)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(Msgs)
                ' Релиз объекта с сообщениями
                Msgs = Nothing
            End If
            ' Уменьшение значения счетчика ссылок для предоставленной вызываемой оболочки среды CLR
            ' (выполнять, если необходимо, явное освобождение памяти после использования объекта)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(Unit)
            ' Релиз объекта с объектом :)
            Unit = Nothing
        Next i
        ' Уменьшение значения счетчика ссылок для предоставленной вызываемой оболочки среды CLR
        ' (выполнять, если необходимо, явное освобождение памяти после использования объекта)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(Units)
        ' Всё, конец программы, больше не будем работать с этими объектами, делаем релиз
        Units = Nothing
        Wialon = Nothing
        ' Конец
        MsgBox("End")
Код на C#:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
   // Главный компонент системы, обеспечивающий подключение к Wialon
        SystemWialon.IWialonConnection WialonConn;
        //Коллекция доступных объектов
        SystemWialon.IWialonCollection WUnits;
        // Отдельный объект
        SystemWialon.IWialonUnit WUnit;
        // Строка ошибки Wialon
       string WErrStr;
        // Коллекция сообщений от объекта
        SystemWialon.IWialonCollection WMsgs;
        // Количество объектов в коллекции
        long WCountOfUnits;
        int f = 0;//значение false
 
       
        // Установка настроек соединения через прокси-сервер
        WialonConn.SetProxyMode("ProxyHost", 8080, "Login:Passw");//просит присвоить значение локальному объекту, непонятно зачем и как его присвоить?
        // Получение всех доступных объектов пользователю user с паролем passw,
        // от сервера [url]https://activex.gurtam.com[/url] (префикс необходим для подключения
        // по защищенному соединению) на 443 порту, без прокси сервера
        WUnits = WialonConn.Login("https://activex.gurtam.com", 443, "user", "passw");
        // Проверка доступности объектов
        if (WUnits == null)
        {
         //  Если объекты недоступны, то получаем ошибку элемента ActiveX, а также ошибку от Wialon
 
         //  Console.WriteLine("Error = " +  Err.Number.ToString() + ": " + Err.Source.ToString() + " (" + Err.Description.ToString() + ")");
 
         // Получение ошибки от сервера Wialon
         //  WErrStr =  WialonConn.GetLastError();
          WErrStr = WialonConn.GetLastError();
            Console.WriteLine("Wialon error:" + WErrStr);
        }
        else
            return;
         //' Получение количества доступных объектов
          WCountOfUnits = WUnits.Count;
        //' Вывод сообщения о количестве доступных объектов на экран
        Console.WriteLine("Units = " + WCountOfUnits.ToString());
        //' Запуск цикла для перебора всех объектов
        for (int i = 1; i < WUnits.Count; i++)
        {
            // Получение объекта из коллекции
            WUnit = WUnits[i];
 
            //    ' Проверка, получен ли объект
            if (WUnit == null)
                //        ' Если объект не получен, скорее всего произошла ошибка — выход
                Console.WriteLine("Not unit"); return;
 
 
            //    ' Установка флага получения адресов по координатам. False — без адресов (быстрее). True — с адресами (медленнее).
       
            
            WUnit.ResolveLocations(f);// Не понятно как ставить флаг, который определяет есть значение у f или его нету?
          
 
  if (f==0)
                // Получение сообщений от объекта за период (время в UNIX формате с 1 января 1970 г.)
                WMsgs = WUnit.GetMessages(1255112326, 1256312326);
            //     Проверка, получены ли сообщения
            if (WMsgs == null)
            {
                //        ' Вывод сообщения, что сообщения не получены
                Console.WriteLine("No messages for unit: " + WUnit.Name);
            }
            else
            {
                //        ' Вывод количества сообщений, полученных от объекта
                Console.WriteLine("Messages = " + WMsgs.Count.ToString());
                //        ' Уменьшение значения счетчика ссылок для предоставленной вызываемой оболочки среды CLR
                //        ' (выполнять, если необходимо, явное освобождение памяти после использования объекта)
                System.Runtime.InteropServices.Marshal.ReleaseComObject(WMsgs);
                //        ' Релиз объекта с сообщениями
                WMsgs = null;
            }
            //    ' Уменьшение значения счетчика ссылок для предоставленной вызываемой оболочки среды CLR
            //    ' (выполнять, если необходимо, явное освобождение памяти после использования объекта)
            System.Runtime.InteropServices.Marshal.ReleaseComObject(WUnit);
            //    ' Релиз объекта с объектом :)
            WUnit = null;
       
        }
        //' Уменьшение значения счетчика ссылок для предоставленной вызываемой оболочки среды CLR
        //' (выполнять, если необходимо, явное освобождение памяти после использования объекта)
       System.Runtime.InteropServices.Marshal.ReleaseComObject(WUnits);
        //' Всё, конец программы, больше не будем работать с этими объектами, делаем релиз
       WUnits = null;
       WialonConn = null;
        //' Конец
       Console.WriteLine("End");
      }
Буду очень признателен за помощь

Добавлено через 4 часа 1 минуту
С первой ошибкой разобрался, необходимо прописать следующее
C#
1
2
 Type xLApp = Type.GetTypeFromProgID("WialonActiveXLib.WialonConnections");
       WialonConn = (WialonActiveXLib.WialonConnection)Activator.CreateInstance(xLApp);


Вернуться к обсуждению:
Подключение модуля ActiveX: перевести код с VB .NET C#
0
Заказать работу у эксперта
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.11.2012, 16:22
Готовые ответы и решения:

Работа с Excel средствами VB.net. Как перевести код из VBA в VB.net?
Коллеги, добрый день! Нужна помощь! В свое время был написан макрос для Excel, но прошло и...

Перевести код из VB.net в С#
доброе время суток гуру....а сейчас вопрос,сушествует ли программа для перевода из VB.net в С# или...

Перевести код с VB.net на C#
Sub Button1_Click(sender As Object, e As EventArgs) DataGrid1.DataSourse =...

Перевести код с VB .NET
Public Class Valiakincalc2 Public i1, i2, i3, i4, i5, i6, iznak As Double, d As Integer,...

2
21.11.2012, 16:22
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.11.2012, 16:22
Помогаю со студенческими работами здесь

Перевести код с VB .NET
Добрый день! Помогите пожалуйста корректно на C# данный код конвертнуть: Public Class class2 ...

Перевести код с VB.Net
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Перевести код с VB .NET
Public Class Form1 Private Function f(t As Double, h0 As Double, size As Double) As Double ...

Перевести код из VB.net в C#
Имеется кусок кода Function ToByte(ByVal Str As String) As Byte() Dim Tmp(Str.Length - 1)...

0
Новые блоги и статьи
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
Полезные поделки на Arduino, которые можно сделать самому
raxper 06.01.2025
Arduino как платформа для творчества Arduino представляет собой удивительную платформу для технического творчества, которая открывает безграничные возможности для создания уникальных проектов. Эта. . .
Подборка решений задач на Python
IT_Exp 06.01.2025
Целью данной подборки является предоставление возможности ознакомиться с различными задачами и их решениями на Python, что может быть полезно как для начинающих, так и для опытных программистов. . . .
С чего начать программировать микроконтроллер­­ы
raxper 06.01.2025
Введение в мир микроконтроллеров Микроконтроллеры стали неотъемлемой частью современного мира, окружая нас повсюду: от простых бытовых приборов до сложных промышленных систем. Эти маленькие. . .
Из чего собрать игровой компьютер
inter-admin 06.01.2025
Сборка игрового компьютера требует особого внимания к выбору комплектующих и их совместимости. Правильно собранный игровой ПК не только обеспечивает комфортный геймплей в современных играх, но и. . .
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного сумматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­­­­­­­­­­­­­­­­­­­­­­­­­х­р­о­н­­н­­­ы­­й счётчик с управляющим сигналом зад
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru