Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Adept
-
- Новичок

-
-
- Сообщения: 25
- Зарегистрирован: 21.02.2005 (Пн) 7:59
- Откуда: Питер
Adept » 18.07.2005 (Пн) 12:06
Появилась такая проблема...
Мне нужно передать в функцию, которая в библиотеке, в качестве параметра ListBox...
В DLL'ке я написал:
Public Function Sort_By_WordLenght (ListBox1 As Listbox) as integer 'сортируем слова по длине
...
End Function
Она не захотела компилироваться. Тогда я описал ListBox1 As Object,
библиотека скомпилировалась, но теперь при вызове функции из программы
возникает ошибка - не найдена точка входа (Entry Point)... =(
-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 18.07.2005 (Пн) 12:19
В какой такой dll'ке?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Adept
-
- Новичок

-
-
- Сообщения: 25
- Зарегистрирован: 21.02.2005 (Пн) 7:59
- Откуда: Питер
Adept » 18.07.2005 (Пн) 13:04
1. Создаю новый проект - ActiveX DLL
2. В нём пишу:
Public Function Sort_By_WordLenght (ListBox1 As Listbox) as integer 'сортируем слова по длине
...
End Function
Выдаёт ошибку - какие-то проблемы или с Public/Private модулем,
или с возвращением результата... Короче, отказывается даже компилироваться... =(
Но если написать:
Public Function Sort_By_WordLenght (ListBox1 As Object) as integer 'сортируем слова по длине
...
End Function
то он компилится, но ругается при вызове функции... =(
-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 18.07.2005 (Пн) 13:16
И как же мы вызываем функцию?
Предвижу ответ, но всё же?

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Adept
-
- Новичок

-
-
- Сообщения: 25
- Зарегистрирован: 21.02.2005 (Пн) 7:59
- Откуда: Питер
Adept » 18.07.2005 (Пн) 13:54
Сейчас начал делать всё это заново и, кажется, понял!
Короче, объект в параметре передаётся нормально - ф-я правильно возвращает число записей в ListBox'е (ListCount)! А после сортировки значит надо возвращать массив строк в нужной последовательности!..
P.S. Вызываю ф-ю
- Код: Выделить всё
Dim MyClass As New Class1, i%
Private Sub Form_Load()
For i = 1 To 10
List1.AddItem "111"
Next i
i = MyClass.LineNum(List1)
MsgBox i
End
End Sub
А в Class1.cls:
- Код: Выделить всё
Public Function LineNum(ListBox1 As Object) As Integer
LineNum = ListBox1.ListCount
End Function
-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 18.07.2005 (Пн) 14:19
Что значит - надо возвращать массив строк? Где и зачем?

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Adept
-
- Новичок

-
-
- Сообщения: 25
- Зарегистрирован: 21.02.2005 (Пн) 7:59
- Откуда: Питер
Adept » 18.07.2005 (Пн) 14:52
Мда... Похоже я прирождённый флудер...
Ты прав - возвращать ничего не надо

, но подпрограмму сделать у меня не получилось...
- Код: Выделить всё
Public Function Sort_by_Len(ListBox1 As Object) As Integer 'Bubble-sort(?)
Dim i As Integer, j As Integer
For i = 1 To ListBox1.ListCount
For j = 1 To ListBox1.ListCount
If Len(ListBox1.List(j)) > Len(ListBox1.List(j - 1)) Then
tmp$ = ListBox1.List(j)
ListBox1.List(j) = ListBox1.List(j - 1)
ListBox1.List(j - 1) = tmp$
End If
Next j
Next i
End Function
-
GSerg
-
- Шаман

-
-
- Сообщения: 14286
- Зарегистрирован: 14.12.2002 (Сб) 5:25
- Откуда: Магадан
GSerg » 18.07.2005 (Пн) 17:08
Так чё не работает?

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас
-
Adept
-
- Новичок

-
-
- Сообщения: 25
- Зарегистрирован: 21.02.2005 (Пн) 7:59
- Откуда: Питер
Adept » 30.07.2005 (Сб) 16:08
Всё работает! Просто у меня руки не оттуда растут!
Спасибо за наводящие вопросы!

Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, PetalBot, Yandex-бот и гости: 6