Конкретика:
есть модуль main(), который грузит функцию opencfg(имя файла как строка). И при вызове этой функции вылетает. Дальнейшие операции я проделывал, кидая экзешник на виртуальную машину (ставя в нужных местах для проверки в коде порграммы msgbox'ы, поскольку, повторюсь, у меня все работает отлично).
Собственно, opencfg получает имя файла и должен с ним проделывать считывание, что реализовано в еще одной функции. Хинт в том, что в модуле main сразу перед вызовом opencfg() стоит msgbox и он срабатывает. А внутри этой функции первой строкой же стоит другой msgbox и он молчит, т.е., программа вылетает до него. Естественно, я проверил получаемую функцией строку - она нормальна. Более того, вызов функции opencfg идет только в случае, если файл существует (через my.computer....fileexist), который в качестве аргумента так же имеет строку. Иными словами, строка является абсолютно нормальной.
В программе существуют похожие функции, например, за несколько строк до opencfg() идет аналогичная по строению LoadMainFCG(), использующая в качестве аргумента имя файла. Срабатывает на ура.
В чем может быть проблема? Ну, то есть, понятно, что в моих кривых руках, но хотелось бы конкретики (я не имею ввиду угол кривизны и место произрастания).
Собственно, проект пишу для себя, поэтому меня не подгоняют никакие строки, а просто гложет любопытство - почему так?! =)
Собственно, код:
- Код: Выделить всё
Sub main()
...
If LoadLastFile = True Then
msgbox ("tryload")
If My.Computer.FileSystem.FileExists(lastfile) Then opencfg(lastfile)
End If
...
End sub
Sub opencfg(ByVal fname As String)
msgbox ("Процедура вызвана")
Dim cfg() As String = Split(gettextfromfile(fname), vbCrLf)
For i = 0 To UBound(cfg)
...
End sub
msgbox ("tryload") - срабатывает
msgbox ("Процедура вызвана") - нет