powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
8 сообщений из 8, страница 1 из 1
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218203
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня.
Пытаюсь рабочий код, что был написан на VB6 для работы с сокетом
перенести на VB 2010, но получаю ошибку (что в сабже)
Не пинайте сильно, я новичок в NET

Код: vbnet
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.
Imports System.Windows.Forms
Public Class GTMCmd
    '=============================
    'EVENTS
    '=============================
    Public Event DataArrival(ByVal bytesTotal As Long)
    Private m_blnHeaderArrived As Boolean
    Public m_var(16) As Object
    Private m_strHeader As String
    Private WithEvents GTMCmd As OSWINSCK.Winsock

 Private Sub GTMCmd_OnDataArrival(ByVal bytesTotal As Integer) Handles GTMCmd.OnDataArrival
        Dim m_strChunk As String = ""
        Dim cnt As Integer
        Dim varFull() As String
        On Error GoTo Error_Handler
        'Try
        m_blnHeaderArrived = False
        Call Reset()
        GTMCmd.GetData(m_strChunk)
        m_strHeader = m_strHeader & m_strChunk
        '---------------------------------------------------------------
        'if header hasn't arrived. QUIT - "F"  No QUIT - "R"
        '---------------------------------------------------------------
        If InStr(m_strHeader, Chr(157)) Then
            'Selectam cati parameteri. Eroare - End
            'varFull(0) e rezervat pentru a intoarce prin "Q"
            'varFull(1) e rezervat pentru a intoarce Error
            varFull = Split(m_strHeader, Chr(156))
            If InStr(varFull(1), "%GTM-") Or InStr(varFull(1), "%SYSTEM-") Then
                MsgBox(varFull(1))
                Reset()
                m_strHeader = ""
                m_strChunk = ""
            End If

             For cnt = 0 To UBound(varFull)
               m_var(cnt) = varFull(cnt) ' ОШИБКА !!!!
            Next cnt
            m_strHeader = ""
            m_strChunk = ""
            m_blnHeaderArrived = True
        End If

        Exit Sub
Error_Handler:
        'Catch
        Reset()
        m_strHeader = ""
        m_strChunk = ""
        MsgBox("Error: " & Err.Number & Err.Description)
        'End Try
    End Sub



Ошибка в этом коде:
m_var(cnt) = varFull(cnt) ' ОШИБКА !!!!

Элементу массива m_var(cnt) не присваивается значение, хотя оно есть.
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218320
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
Код: vbnet
1.
    Public m_var(16) As Object



Ошибка в этом коде:
m_var(cnt) = varFull(cnt) ' ОШИБКА !!!!

Элементу массива m_var(cnt) не присваивается значение, хотя оно есть.Вы уверены, что cnt у Вас не больше 16?
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218342
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы уверены, что cnt у Вас не больше 16?
Не больше.
В данном конкретном примере в моем тесте, пока только два значения 0 и 1
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218392
sld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sld
Гость
во первых чоза ошибка поконкретнее, а во вторых точку остановки туда ставьте и смотрите.
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218564
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu, посмотри отладчиком какая именно переменная имеет значение Nothing. Скорее всего это будет m_var.

Кстати, ты точно уверен что m_var должна быть Public? Если да, то советую переименовать т.к. обращение вида переменная.m_var будет выглядеть как потенциальная проблема.
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218648
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu, посмотри отладчиком какая именно переменная имеет значение Nothing. Скорее всего это будет m_var.

Отладчиком посмотрел.
Переменная varFull(cnt) не пустая, содержит данные,
cnt тоже, а вот m_var(cnt) - нет ...

На счет обьявления Public m_var(16) As Object/

Это переменная участвует и в других функциях (передаю туда)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Public Function XecuteGTM(ByVal str As String) As String
        GTMCmd.SendData("XE " & str & vbCrLf)
        Do Until m_blnHeaderArrived
            Application.DoEvents()
        Loop
        Return m_var(0)
        Call Reset()
    End Function
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218702
Barkan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,

Ты объявил массив переменных, но не создал его, не инициализировал.
И уверен что m_var нужен именно как Object?
Присваиваешь потом ему String?
...
Рейтинг: 0 / 0
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
    #38218740
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел ошибку. Подвела функция Erase
Пришлось ставить "пусто" в цикле.
Не знаю на сколько это правильно...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Private Sub Reset()
        m_blnHeaderArrived = False 'Evenimentul il arunc in FALSE
        'Erase m_var                ' Clear array and memory
        For i = 0 To 16
            m_var(i) = ""
        Next
    End Sub
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]