Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта / 8 сообщений из 8, страница 1 из 1
09.04.2013, 09:34
    #38218203
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
Всем доброго дня.
Пытаюсь рабочий код, что был написан на 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
09.04.2013, 10:40
    #38218320
sphinx_mv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
Valeriu
Код: vbnet
1.
    Public m_var(16) As Object



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

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

Кстати, ты точно уверен что m_var должна быть Public? Если да, то советую переименовать т.к. обращение вида переменная.m_var будет выглядеть как потенциальная проблема.
...
Рейтинг: 0 / 0
09.04.2013, 13:05
    #38218648
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
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
09.04.2013, 13:30
    #38218702
Barkan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
Valeriu,

Ты объявил массив переменных, но не создал его, не инициализировал.
И уверен что m_var нужен именно как Object?
Присваиваешь потом ему String?
...
Рейтинг: 0 / 0
09.04.2013, 13:50
    #38218740
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта
Нашел ошибку. Подвела функция 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
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / VB.NET Ошибка: Ссылка на обьект не указывает на экземпляр обьекта / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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