From VB6 in VB5

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

From VB6 in VB5

Сообщение Dummiel » 12.04.2006 (Ср) 15:01

По определенным причинами нужно прогу, написанную на VB6 перевести и скомпилировать в VB5.
А как? Это сильно сложно?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 12.04.2006 (Ср) 15:13

Нет. Просто создай новый проект в VB5 и перенеси все модули. По идее можно и новый проект не создавать, достаточно в *.vbp стереть пару строк, которые не понимает 5й, но я не помню каких. Помню, они находятся в конце файла. Структуры форм, классов и т.п. одинаковые. Некоторые стандартные функции в 5м отсутствуют, например Replace. Вобщем, скомпилируй, и сам все увидишь.
Лучший способ понять что-то самому — объяснить это другому.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.04.2006 (Ср) 15:15

Replace это фигня.
А вот отсуствие AddressOf и невозможность юзать публичные типы это гораздо хуже.
Lasciate ogni speranza, voi ch'entrate.

Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

Сообщение Dummiel » 12.04.2006 (Ср) 15:17

Спасибо, попробую.
Пректик у меня без наворотов, так что, думаю, получится.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 12.04.2006 (Ср) 15:30

Retained=0
удалить, кажется
Пора уже всем хорошим людям собраться и убить всех плохих людей.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 12.04.2006 (Ср) 17:49

alibek писал(а):Replace это фигня.
А вот отсуствие AddressOf и невозможность юзать публичные типы это гораздо хуже.

И AddressOf, и возможность юзать публичные типы в VB5 были. Ты с VB4 не путаешь? ;-)
Изображение

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 12.04.2006 (Ср) 17:51

В VB5 результ действия AddressOf нельзя было присвоить переменной, а только передать в API-функцию
Весь мир матрица, а мы в нем потоки байтов!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.04.2006 (Ср) 20:49

Ее и в VB6 нельзя передать в переменную, только использовать обертку типа FnPtr. Я с VB5 общался довольно давно, может быть и ошибаюсь. Но вот насчет публичных типов только пару недель назад кто-то с подобной проблемой писал на форум, у него не получалось публичные типы использовать.
Lasciate ogni speranza, voi ch'entrate.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 13.04.2006 (Чт) 8:51

Просто тот чел пытался передать в качестве параметра публичной функции приватный тип. Или тот тип был описан не в публичном классе а в модуле, что по сути то же самое.
Лучший способ понять что-то самому — объяснить это другому.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 13.04.2006 (Чт) 8:54

GB826, точно, Retained. Оно относится к ActiveX EXE, которые 5й не умеет создавать.
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.04.2006 (Чт) 17:01

alibek писал(а):Но вот насчет публичных типов только пару недель назад кто-то с подобной проблемой писал на форум, у него не получалось публичные типы использовать.

Он пытался объявлять, а не использовать. Объявлять, значит, было нельзя.

Antonariy писал(а):GB826, точно, Retained. Оно относится к ActiveX EXE, которые 5й не умеет создавать.

Умеет. Чесслово :roll:
Изображение

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.04.2006 (Пт) 11:08

alibek писал(а):Ее и в VB6 нельзя передать в переменную, только использовать обертку типа FnPtr. Я с VB5 общался довольно давно, может быть и ошибаюсь.

Вернее так. В VB5 результат AddressOf можно было передать только в API-функцию, а а в VB6 можно в свою функцию-обертку
Весь мир матрица, а мы в нем потоки байтов!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.04.2006 (Пт) 11:19

!Viper! писал(а):
alibek писал(а):Ее и в VB6 нельзя передать в переменную, только использовать обертку типа FnPtr. Я с VB5 общался довольно давно, может быть и ошибаюсь.

Вернее так. В VB5 результат AddressOf можно было передать только в API-функцию, а а в VB6 можно в свою функцию-обертку

В VB5 тоже можно было в обёртку.
С чего вы вообще взяли, что семантика AddressOf как-то поменялась?
Изображение

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.04.2006 (Пт) 11:34

VB5 бы найти щас, но что-то с AddressOf при переходе от VB5 к VB6 поменялось. Что поменялось помню, а вот что? :?:
Весь мир матрица, а мы в нем потоки байтов!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.04.2006 (Вт) 11:38

Только что поставил VB5 и проверил:
Код: Выделить всё
Option Explicit

Sub Main()
MsgBox f(AddressOf f)
End Sub

Function f(ByVal l As Long)
f = l
End Function

Работает.

ActiveX EXE есть. Могу приаттачить ;-)

UDT из TLB читаются -- они есть, например, в stdole.

Ещё возражения?
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 25.04.2006 (Вт) 13:01

Как сейчас помню - части проектов в вб5 не хватало. Хотя может это были шаблоны?
Лучший способ понять что-то самому — объяснить это другому.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 182

    TopList  
cron