Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27

Использование классов Net Framework в программах на VB 6.0

08.11.2020, 01:26. Показов 5603. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Спасибо "Яндексу". Ищешь одно, получаешь что угодно.
Нашёл статью:
http://www.interface.ru/home.asp?artId=6875
попробовал. Получилось. Из статьи следует, что не всё можно использовать.
Visual Basic 6 будет в состоянии обращаться к сборке .NET System.dll, потому что для нее была создана вызываемая обертка COM. Однако класс .NET должен подчиняться набору достаточно ограничительных правил, чтобы он и его методы работали в вызываемой обертке COM. В результате, лишь очень маленький процент классов из сборки System.dll можно будет вызывать напрямую в Visual Basic 6.
В статье нет перечня "очень маленького процента классов", который можно будет использовать.
После прочтения статьи возникли вопросы:
1). Библиотека Net Framework предустанавливается начиная с Windows XP. А раз так, то она должна быть зарегистрирована в реестре. Зачем нужную из неё .dll надо регистрировать ещё раз?
2). Есть ли у кого-либо опыт применения классов Net Framework для обоснованного расширения возможностей VB 6.0?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.11.2020, 01:26
Ответы с готовыми решениями:

Применение entity framework и ADO.NET в различных программах
Приветствую всех. Нужно объяснить простыми и общими словами, на практическом опыте: в каких случаях лучше использовать entity framework,...

В списке Target Framework не выбирается .NET Framework 4 только .NET Framework 4 Client Profile
Свойства проекта (Project -> Properties) -> вкладка Compile -> Advenced complie options -> в списке Target Framework не выбирается .NET...

Использование NET.FRAMEWORK
Здравствуйте, подскажите можно ли обойтись при написании программ без NET.FRAMEWORK (ms visual studio 2010), если нет то есть ли среда для...

53
 Аватар для UBUNTU
352 / 213 / 42
Регистрация: 04.02.2015
Сообщений: 1,344
11.11.2020, 07:32
Студворк — интернет-сервис помощи студентам
Someone007, Слабенько доводы или что то ? Тебя в посте уделали а ты ещё пытаешься что то вякнуть

А вообще по сути конечному пользователю глубоко пофигу на чем написано, главное чтобы он открыл и все работало так как ему нужно. И каждый будет писать там где он хочет и считает нужным. Современные реалии требуют уклона в веб программирование, а для рядовой небольшой базы вы будете разворачивать веб сервер просить дополнительные средства на покупку или напишите простой десктопный экзешник
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38228 / 21160 / 4314
Регистрация: 12.02.2012
Сообщений: 34,777
Записей в блоге: 14
16.11.2020, 19:45
Цитата Сообщение от Someone007 Посмотреть сообщение
Почему-то у меня с этим проблем не возникает.
- но ты же высказываешь общие соображения (типа "VB никому не нужен"). А в качестве "доказательства" - что он не нужен лично тебе.
4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38228 / 21160 / 4314
Регистрация: 12.02.2012
Сообщений: 34,777
Записей в блоге: 14
17.11.2020, 08:38
Вот данные за 2019 год. Vb/Vb.net живы и входят в двадцатку популярных языков.
Миниатюры
Использование классов Net Framework в программах на VB 6.0  
3
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
30.11.2020, 17:35  [ТС]
Долго копал интернет. Советы схожи с этим:
Creating a simple com class in .net VS2005 using vb
https://social.msdn.microsoft.... m=netfxbcl
Написано "мутно" и для класса C# с одной единственной функцией. Как например, поступить для пробы с этим:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
public class vscode
{
    public int add(int a, int b)
    {
        return a + b;
    }
 
    public int sub(int a, int b)
    {
        return a - b;
    }
}
dll создаётся, но т.к. она не является СОМ объектом работать с ней нельзя.
0
63 / 48 / 12
Регистрация: 28.12.2014
Сообщений: 273
01.12.2020, 08:26
Исполняемый файл на VB6, внепроцессный сервер на NET x86/x64, связь с помощью интерпроцессный коммуникаций - message loop, RPC и т.д.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
01.12.2020, 11:05
Цитата Сообщение от Argus19 Посмотреть сообщение
Написано "мутно"
Вот тут посмотри, вроде понятно написано.
1
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
01.12.2020, 18:39  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
вроде понятно написано
Попробую что-нибудь склеить из нескольких инструкций.
Есть принципиальный вопрос: если создаётся .dll, использующая библиотеки .Net или MS Office, то в них ссылки на них или в .dll встраивается их часть? Т.е. , например, если .dll создаётся на машине с установленным MS Office, то будет ли она работать на другой машине, где MS Office не установлен?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18035 / 7738 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
07.12.2020, 18:20
Цитата Сообщение от Catstail Посмотреть сообщение
- похож... Но закрыт.
Это не совсем есть правда. С 2017 года компания создала фреймворк .Net Core, который является Open Source, активно развивается сообществом и интегрирован в Visual Studio. Кроме того, он - кроссплатформенный. Да, есть ограничения на набор доступных классов из состава полного .Net Framework, но в целом это огромный шаг.

Сравнение с VB6 считаю неуместным, т.к. слишком много факторов. Есть минусы у обоих языков. И в зависимости от целей использования, этих минусов будет больше либо у C#, либо у VB6. Большинство плюх полетит конечно в VB6 Минусы C# не буду перечислять, чтоб не продолжать холивар, те кто юзает, сам знает (или узнает). Скажу только что VB6 сильно выигрывает по совместимости со старыми ОС, портативности и размере программ. А держится на плаву до сих пор только благодаря усилиям сообщества и таким ребятам, как The Trick. Жаль что нет до сих пор более удобной IDE, хотя бы разделения модулей на подпапки как в VS. И очень жаль что его оставили с огрызком от полноценного ООП.

"Не там поставил скобку" - это вообще смешно. Visual Studio динамически делает выравнивание. Проблема скорее в острой невнимательности, криворукости, или неверно выбранной (настроенной) IDE и ее подсветке. PS. На дефолтовой всё норм.
Ну а если у вас киллометровая функция, то это проблема индейца - почитайте про Clean Code.

На счёт синтаксиса - на вкус фломастеры разные. Но если бы мне предоставили выбор использовать конструкции If - End If или if () {} на языке VB6, то я бы взял вторую за её краткость. Краткость всегда выигрывает в контексте одного из факторов лучшей читаемости кода.

Цитата Сообщение от Argus19 Посмотреть сообщение
Это пока сложно для меня. Я даже не понял, какие действия производятся в приведённом вами коде.
Опять понадеялся, что использование Net будет подобным примеру из первого поста.
Дык, те же самые что и в статье. Подключаешь к проекту библиотеку исполняемого ядра .Net нужной тебе версии, и исполняешь приведённый код.
2
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
07.12.2020, 19:14  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
Жаль что нет до сих пор более удобной IDE
https://github.com/VykosX/ModernVB
0
Любитель
 Аватар для Тим70
1074 / 786 / 161
Регистрация: 27.01.2019
Сообщений: 1,552
08.12.2020, 06:40
Argus19, Переходи на VN.NET ,как говорилось ранее.если у тебы Win XP,то вполне потянгет vb2010.У меня такой стоит express с FW 4 ,на русском полностью безплатный!Через месяц потребует код,но он один для всех и его выщлю.Попробуй студию,не пожелеешь!Все что к ней нужно установится вместе с ней.Не понравитсь.просто удалишь.
Вложения
Тип файла: rar vb_web2010.rar (3.13 Мб, 21 просмотров)
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
08.12.2020, 09:57  [ТС]
Цитата Сообщение от Тим70 Посмотреть сообщение
Переходи на VN.NET
У меня установлена VS2010. VB.Net с этого года перестаёт развиваться. Он будет какое-то время поддерживаться "Некрософтом". Что придёт на замену, пока не ясно.
"Некрософту" начхать на мнение пользователей. Приняли решение перейти на ООП и перешли, забросив VB. И, заметьте, исходные коды, давно не поддерживаемой среды не публикуют, хотя бы для истории.
Dragokas написал, что со следующего года перестанут работать старые драйверы для Win10. Т.е. неизвестно, какие сюрпризы ожидают всех, кто работает на Windows.
0
Любитель
 Аватар для Тим70
1074 / 786 / 161
Регистрация: 27.01.2019
Сообщений: 1,552
08.12.2020, 14:02
Argus19, Но NET поддерживает ООП.Хотя C# скорее всего предет ему на замеу.Не пойму чем он лучше...Эти ковычки и скобки просто достают.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
08.12.2020, 14:34  [ТС]
Цитата Сообщение от Тим70 Посмотреть сообщение
NET поддерживает ООП
Я не изучал VB.Net. Приведите пример какой-либо симпатичной функции VB.Net, реализация которой на VB 6.0 затруднительна или невозможна. Я попробую её обернуть по методичке.
0
Любитель
 Аватар для Тим70
1074 / 786 / 161
Регистрация: 27.01.2019
Сообщений: 1,552
08.12.2020, 16:41
Барсик всетаки роазвитой и понятный язык.Но посмотрите на чем пишутся dll и вам все станет понятно.НО я бы не скидывал Барсик в помойку!Это самый простой в изучении язык.Зачем же его ущемлять?Если человек захочет изучить более продвинутый язык,флаг ему в руки!Но Барсик здесь при чем?
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
08.12.2020, 17:32  [ТС]
Цитата Сообщение от Тим70 Посмотреть сообщение
Но посмотрите на чем пишутся dll и вам все станет понятно
Пишутся на любом языке. Вверху темы VB есть тема.
Суть идеи в том, что реализация классов .Net в VB 6.0 довольно затруднительна. Библиотеки, написанные на C# необходимо доводить до уровня СОМ, что тоже не очень удобно. В интернетах пишут, что лучший способ - обернуть в СОМ бибилиотеку, использующую класс .Net, написанную на VB.Net.
Я не изучал VB.Net поэтому, мне интересна реализация какого-либо класса .NetFramework на VB.Net, чтобы использовать её в VB 6.0.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
08.12.2020, 18:54
Цитата Сообщение от Argus19 Посмотреть сообщение
Библиотеки, написанные на C# необходимо доводить до уровня СОМ, что тоже не очень удобно.
Да там вроде просто всё. DLL COM создаётся легко, подключается к VB6 тоже элементарно через tlb. VB6 видит функции, которые я написал. Но вот только не вызывает их, ошибки различные, в зависимости от способа декларации этого класса , а уже как только не изголялся
Хотя, наверно, это я что то не умею...
В архиве проект на C# и на VB6. В VB6 нужно сделать ссылку на CalcClass найдя в проекте C# по пути :
...\CalcClass\CalcClass\bin\Debug\CalcCl ass.tlb

Пробуйте, может кто и разрешит загадку. Хотя может и не в VB6 дело, а написал на C# неправильно.
Вложения
Тип файла: zip Test VB.zip (19.0 Кб, 12 просмотров)
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
08.12.2020, 19:29  [ТС]
Вот тут иностранцы что-такое обсуждают:
https://www.vbforums.com/showt... ost4891807
0
bite
 Аватар для I can
5011 / 4841 / 852
Регистрация: 13.04.2015
Сообщений: 10,123
08.12.2020, 20:04
Pro_grammer, к VB.Net эта dll-ка подключается и работает, но видится как Net, а не COM


0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
08.12.2020, 21:12
Цитата Сообщение от I can Посмотреть сообщение
но видится как Net, а не COM
Я менял в настройках на ComVisible(true)

C#
1
2
3
4
5
6
7
// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
 
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("09de5f7b-7c17-41ea-875a-c17fc453309a")]
Ни чего не изменилось.
0
Любитель
 Аватар для Тим70
1074 / 786 / 161
Регистрация: 27.01.2019
Сообщений: 1,552
08.12.2020, 22:05
Argus19, Извини,отвлекли.Ну что нибудь простенькое из тех же массивов например МАХ и МИН
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Class Form
    Dim R As New Random
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a(98) As Integer
        Dim ma As Integer
        Dim mi As Integer
        ListBox1.Items.Clear()
        For i = 0 To 9
            a(i) = R.Next(-1, 9)
            ListBox1.Items.Add(i & ") =" & a(i))
        Next
        ma = a.Max
        mi = a.Min
        Label1.Text = ma & vbNewLine & mi
    End Sub
End Class
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2020, 22:05

Использование .ToList() в net.Framework 2.0
Собственно как можно преобразовать данную конструкцию для работы в net framework 2.0 public void Add(params ComboBox boxes) { ...

Использование PowerShell в .Net Framework
Хочу использовать power shell. В документации на msdn написано, что для использования нужно подключить System.Management.Automation.dll....

Использование Entity Framework в ASP.NET
Доброго времени суток ребята! Вопрос про EF. Вот когда создавал обычное приложение (не Web), то формировал классы сущности...

Кроссплатформенность - зачем существует реализация библиотеки базовых классов .NET Framework от Mono?
Я попытался найти ответ на форуме, тем не менее, так и не смог найти внятного объяснения следующего вопроса. Промежуточный язык IL...

Запуск приложения на платформе .NET Framework 4.0, на другом компьютере без установки .NET Framework 4.0
Как запустить приложение на платформе .NET Framework 4.0, на другом компьютере без установки .NET Framework 4.0?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru