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


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

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

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

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

Спасибо.
...
Рейтинг: 0 / 0
29.11.2012, 14:34
    #38058015
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
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
29.11.2012, 16:08
    #38058321
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
Вроде заработал. Сделал так в модуле
Код: 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
29.11.2012, 16:55
    #38058455
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
Разобрался. Только без модуля.
Я в модуле обьявлял публично для всего проекта ...
Нужно еще копать.
Работает вот так
Код: 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
29.11.2012, 17:06
    #38058496
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
ValeriuРазобрался

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


Но это не работает. Как это заменяется по другому ?
...
Рейтинг: 0 / 0
29.11.2012, 17:53
    #38058637
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
Понял как .
Код: vbnet
1.
2.
Dim m As Object
 m = CreateObject("m.command")
...
Рейтинг: 0 / 0
29.11.2012, 18:36
    #38058748
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
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
29.11.2012, 18:54
    #38058787
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
VSVLAD, Спасибо большое !
Так как мне надо.
Код: vbnet
1.
2.
3.
4.
Imports MSMOLE
Module Module1
    Public m As Object = CreateObject("m.command")
End Module
...
Рейтинг: 0 / 0
29.11.2012, 19:33
    #38058834
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обьявить dll в модуле VB 2010.
ValeriuVSVLAD, Спасибо большое !
Так как мне надо.
Код: vbnet
1.
2.
3.
4.
Imports MSMOLE
Module Module1
    Public m As Object = CreateObject("m.command")
End Module



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


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