powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как обьявить dll в модуле VB 2010.
14 сообщений из 14, страница 1 из 1
Как обьявить dll в модуле VB 2010.
    #38057886
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня !
При работе с VB6 я в референс делал ссылку на некий dll. (COM)
В модуле его обьявляю публичным.
Код: vbnet
1.
Public m as MCommand


Как поступить здесь в VB 2010 ?
Я сделал ссылку нужный мне dll, добавляю модуль
и хочу его обьявить как выше, но почему-то он как бы не существует...
В чем я неправ ?

Не пинайте сильно, я только начал освоить.

Спасибо.
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38057909
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,

Когда добавляешь ссылку на DLL (COM), студия генерирует враппер (интероп) т.е. .DLL (NET). Нужно добавить соотвествующий namespace через оператор Import. Тогда все классы COM будут видны в твоём классе
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38057930
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD
Если можно строчку для примера.

Спасибо.
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058015
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu, вот пример. В книжках хорошо разжёвано, читай Imports в VB или using в C#. Имена классов могут отличаться, как например тут. Оригинальное имя COM класса Connection - а то что я писал, это обёрткой сгенерировано. Для Excel и других популярных COM серверов - обёртки уже есть в .NET и они получше будут чем автогенерируемые.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Imports ADODB 'Например так, при подключении ActiveX Data Objects

Module Program
    Sub Main()
        
        Dim AdoConn As New ConnectionClass 'Объявляем
        'Dim AdoConn As New ADODB.ConnectionClass 'Можно и так, для этого и указываем Imports
    
        Console.WriteLine(AdoConn.Version)
        Console.ReadKey(True)
    End Sub
End Module
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058321
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде заработал. Сделал так в модуле
Код: vbnet
1.
2.
3.
4.
Imports MSMOLE
Module Module1
    Public m As MSMOLE.MCommand
End Module


А вот в форме при запуске выдает ошибку
Первый этап обработки исключения типа "System.NullReferenceException" в приложении WindowsApplication1.exe
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Dim m As New MSMOLE.MCommand
        m.Server = "192.168.1.101" 'Windows Host
        m.Port = 2222
        m.Login()
        MsgBox(m.Xecute("w ZV"))
    End Sub
End Class


Можете обьяснить что я накуралесил ?
Спасибо.
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058455
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Только без модуля.
Я в модуле обьявлял публично для всего проекта ...
Нужно еще копать.
Работает вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim m As New MSMOLE.MCommand
        m.Server = "192.168.1.101"  'Windows Host
        m.Port = 2222
        m.Login()
        MsgBox(m.Xecute("w $ZV"))
    End Sub
End Class
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058496
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuРазобрался

Не разобрались. Ошибка в том, что вы объявляете "Public m As MSMOLE.MCommand", но не создаёте экзмемпляр класса. Или сразу с new объявить, тогда VB его автоматически создаст. Или лучше, создать перед тем как будет использоваться, например в Form_Load как сделали ниже.
Ещё если импорт делаете, то указывать имя сборки "MSMOLE" не обязательно, все классы в том числе MCommand уже будут видны при объявлении.
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058551
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я почему хотел обьявить в модуле, чтоб обьект
был общим для всего проекта.
В VB6 это работает, а тут я сталкиваюсь с этим.
Хотя я знал что NET это совсем уже другое ...
VSVLAD Ошибка в том, что вы объявляете "Public m As MSMOLE.MCommand", но не создаёте экзмемпляр класса
В модуле я так и не понял как это должно быть. Я пробовал NEW, но там не так.
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058579
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я должен делать при запуске формы что-то на подобие как в VB6
Код: vbnet
1.
Set m = CreateObject("m.Command")


Но это не работает. Как это заменяется по другому ?
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058637
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял как .
Код: vbnet
1.
2.
Dim m As Object
 m = CreateObject("m.command")
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058748
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu,

Можно по всякому в модуле объявлять:
Код: vbnet
1.
2.
3.
4.
5.
Module Test
    Public SqlConn As New ADODB.Connection
    Public SqlConn2 As Object = CreateObject("ADODB.Connection")
    Public SqlConn3 = CreateObject("ADODB.Connection")
End Module
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058787
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLAD, Спасибо большое !
Так как мне надо.
Код: vbnet
1.
2.
3.
4.
Imports MSMOLE
Module Module1
    Public m As Object = CreateObject("m.command")
End Module
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058834
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuVSVLAD, Спасибо большое !
Так как мне надо.
Код: vbnet
1.
2.
3.
4.
Imports MSMOLE
Module Module1
    Public m As Object = CreateObject("m.command")
End Module



Уф... при таком способе импорт не нужен, плюс библиотеку можно отсоединить от проекта. Так как CreateObject это позднее связывание... Вообщем лучше читайте книги. Но такой способ не рекомендую, лучше через ранее связывание.
...
Рейтинг: 0 / 0
Как обьявить dll в модуле VB 2010.
    #38058886
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял. Все ровно спасибо. :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как обьявить dll в модуле VB 2010.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]