Форум программистов, компьютерный форум, киберфорум
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. Показов 5605. Ответов 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
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
08.12.2020, 22:40
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Pro_grammer Посмотреть сообщение
а уже как только не изголялся
Сборка правильно зарегистрирована? Я у себя проверил - все работает после правильной регистрации сборки.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
08.12.2020, 23:48
Цитата Сообщение от The trick Посмотреть сообщение
все работает после правильной регистрации сборки.
Да не, я тупо в VB6 сделал ссылку на CalcClass.tlb и всё.
А тут ещё надо что то типа
regasm myTest.dll /tlb:myTest.tlb
что ли сделать?
0
Любитель
 Аватар для Тим70
1074 / 786 / 161
Регистрация: 27.01.2019
Сообщений: 1,552
09.12.2020, 10:55
Argus19,То
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[VBNET]Public Class Form1
 
    Dim R As New Random
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a(9) As Integer
        Dim ma As Integer = Integer.MinValue
        Dim mi As Integer = Integer.MaxValue
        ListBox1.Items.Clear()
        For i = a(0) To a.Count - 1
            a(i) = R.Next(-1, 10)
            ListBox1.Items.Add(i & ") =" & a(i))
        Next
        ma = a.Max
        mi = a.Min
        Label1.Text = ma
        Label2.Text = mi
    End Sub
End Class
[/VBNET] что я скинул раньше работает не правильно.Вот верный вариант
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
09.12.2020, 10:57
Pro_grammer, да, нужно регистрировать сам компонент, также как и обычные ActiveX библиотеки регистрируются через regsvr32.
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
09.12.2020, 11:36
Цитата Сообщение от The trick Посмотреть сообщение
да, нужно регистрировать сам компонент
Я просто считал, что он автоматом регистрируется средой Visual Studio после его создания.
Дело в том, что при новой компиляции старый компонент разрегистрируется перед тем, как создается новый. Я однажды удалил сам (руками) старый DLL, и среда вынесла предупреждение, что не может найти мой компонент для его разрегистрации.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
09.12.2020, 17:58  [ТС]
Цитата Сообщение от Тим70 Посмотреть сообщение
Вот верный вариант
Как я понял, заполняется ListBox и определяется максимальное и минимальное его значения. Не вижу, как это использовать из VB. Задача в том, чтобы передать в функцию или класс .Net некие параметры и получить из неё некие значения или вызвать метод.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
09.12.2020, 19:08  [ТС]
Вот пример использования класса Guid .NET Framework (во вложении).
Класс зарегистрировался при создании его в VS2010. На другом компьютере необходимо его каким-то образом зарегистрировать и потом каким-то образом "отпустить".
Вложения
Тип файла: zip NetFxWrapper.zip (78.6 Кб, 2 просмотров)
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
14.12.2020, 19:12  [ТС]
Цитата Сообщение от Argus19 Посмотреть сообщение
На другом компьютере необходимо его каким-то образом зарегистрировать и потом каким-то образом "отпустить".
Какой код надо вписать в события загрузки и выгрузки формы для регистрации СОМ и для его разрегистрации?
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
14.12.2020, 19:18
Цитата Сообщение от Argus19 Посмотреть сообщение
Какой код надо вписать в события загрузки и выгрузки формы для регистрации СОМ и для его разрегистрации?
Вообще непонятно о чем речь. Более конкретней задачу опиши.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
15.12.2020, 00:21  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Более конкретней задачу опиши.
Во вложении проект на VB.Net, который создаёт .dll, которая вызывается из проекта на VB 6.0.
Dll регистрируется в системе при создании как СОМ объект. На других компьютерах её надо также зарегистрировать.
Вложения
Тип файла: zip NetFxWrapper.zip (68.0 Кб, 6 просмотров)
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
15.12.2020, 08:52
Цитата Сообщение от Argus19 Посмотреть сообщение
Какой код надо вписать в события загрузки и выгрузки формы для регистрации СОМ и для его разрегистрации?
Какой код?
В составе .NET Framework есть спец. утилита regasm.exe, она для этого как раз.
Можно создать с её помощью специальный reg файл, который будет регистрировать DLL. А его уже запускать из своей программы.
такая команда:
Code
1
regasm myTest.dll /regfile:myTest.reg
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
15.12.2020, 11:34  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
В составе .NET Framework..............
При создании .dll, она регистрируется в системе автоматически.
Для запуска вашего кода требуется его вызов из командной строки. Просто туплю. Надо в коде VB написать код вызова утилиты regasm. Как-то так?
Visual Basic
1
Shell "regasm myTest.dll /regfile:myTest.reg", vbHide
0
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
15.12.2020, 12:30
Цитата Сообщение от Argus19 Посмотреть сообщение
Dll регистрируется в системе при создании как СОМ объект. На других компьютерах её надо также зарегистрировать.
Ну вообще, если я ничего не путаю, то можно и не регистрировать вообще. У AppDomain есть метод CreateInstanceFrom который позволяет создать объект используя путь к сборке и имени класса (типа).
В твоем случае это будет приблизительно так:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Form_Load()
    Dim cCORHost    As mscoree.CorRuntimeHost
    Dim cDomain     As AppDomain
    Dim cObj        As GuidWrapper
 
    Set cCORHost = New mscoree.CorRuntimeHost
    
    cCORHost.Start
    cCORHost.GetDefaultDomain cDomain
    
    Set cObj = cDomain.CreateInstanceFrom("ПУТЬ\ClassLibrary1.dll", "NetFxWrapper.GuidWrapper").Unwrap
    
    Debug.Print cObj.NewGuid
    
    cCORHost.Stop
    
End Sub
0
 Аватар для Pro_grammer
6807 / 2840 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
15.12.2020, 15:10
Цитата Сообщение от Argus19 Посмотреть сообщение
Как-то так?
Visual BasicВыделить код
1
Shell "regasm myTest.dll /regfile:myTest.reg", vbHide
Нет. Этот ключик запуска: /regfile:myTest.reg создаёт отдельный reg файл на диске. Вот его и надо запустить любому другому пользователю программы, который поставит её на свой компьютер. Это можно сделать автоматически через функции инсталлятора вашей программы и т.п.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2020, 15:10

Использование .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?


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №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