Проверка существования Dll

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Проверка существования Dll

Сообщение viter.alex » 17.11.2009 (Вт) 12:50

У себя в проекте я использую стороннюю dll для установки глобального хука на мышь. В принципе, программа может работать и без этой библиотеки, но некоторые функции будут недоступны.
Как при старте приложения определить доступность этой библиотеки? Сейчас, если библиотеки нет, то программа просто завершается с ошибкой
Лучше день потерять — потом за пять минут долететь!

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Проверка существования Dll

Сообщение Денис » 17.11.2009 (Вт) 13:37

А какого типа библиотека-то?
Полагаю, для .NET и COM-библиотек нужно поздним связыванием создавать классы, реализующие хук. Для native просто делать loadlibrary в начале работы программы и предупреждать, что библиотека не найдена.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 17.11.2009 (Вт) 13:48

Как-то я плаваю в этом вопросе. Библиотеку добавляю через References
Затем объявляю переменную:
Код: Выделить всё
Public Shared WithEvents mhook As New WindowsHook.MouseHook

После этого я могу обрабатывать глобальные события мыши
Вложения
Source_Code_and_Demo.zip
Библиотека, исходник и пример использования
(65.28 Кб) Скачиваний: 101
Лучше день потерять — потом за пять минут долететь!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Проверка существования Dll

Сообщение Nord777 » 17.11.2009 (Вт) 16:39

что мешает поместить эти классы непосредственно в своё приложение?
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 17.11.2009 (Вт) 17:01

Дело в том, что работать глобальный хук будет только при импорте из dll. Если разместить классы внутри приложения, то я не смогу ставить глобальный хук на мышь
You cannot implement global hooks in Microsoft .NET Framework. To install a global hook, a hook must have a native DLL export to insert itself in another process that requires a valid, consistent function to call into. This behavior requires a DLL export. The .NET Framework does not support DLL exports. Managed code has no concept of a consistent value for a function pointer because these function pointers are proxies that are built dynamically.

Цитата отсюда
Лучше день потерять — потом за пять минут долететь!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Проверка существования Dll

Сообщение Nord777 » 17.11.2009 (Вт) 17:09

To install a global hook, a hook must have a native DLL export to insert itself in another process
...
The .NET Framework does not support DLL exports.
А у тебя dll НЕ нативная. Тем не менее у тебя эти хуки работают.Где то нестыковочка, не находишь?
Сделай как говорю и не парься.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Проверка существования Dll

Сообщение ANDLL » 17.11.2009 (Вт) 19:51

А у тебя dll НЕ нативная
Нестыковочка только в твоем непонимании мира программирвоания.
Public Shared WithEvents mhook As New WindowsHook.MouseHook замени на сначала объявление переменной, а потом в try-catch создавай объект. Если не поможет - не объявляй статический объект, просто создавай и через reflection плюсуся к событию
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 17.11.2009 (Вт) 20:25

ANDLL писал(а):Public Shared WithEvents mhook As New WindowsHook.MouseHook замени на сначала объявление переменной, а потом в try-catch создавай объект.

Это как? Через CreateObject? Ведь эта библиотека нигде не регистрируется, она просто лежит в папке с экзешником.
ANDLL писал(а):Если не поможет - не объявляй статический объект, просто создавай и через reflection плюсуся к событию

Это не понятно. Объясни подробнее.
Лучше день потерять — потом за пять минут долететь!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Проверка существования Dll

Сообщение ANDLL » 17.11.2009 (Вт) 20:29

Ну хотя бы через CreateObject.
У Type есть метод GetEvent который возвращает Event. У него есть метод AddEventHandler который угадай что делает
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Проверка существования Dll

Сообщение Nord777 » 17.11.2009 (Вт) 21:57

ANDLL писал(а):
Nord777 писал(а):А у тебя dll НЕ нативная

Нестыковочка только в твоем непонимании мира программирвоания.
ANDLL, это ты к чему??


viter.alex там дел на три минуты, ты уже пол дня решаешь эту "проблему"
во вложении - без всяких dll
Вложения
WindowsHookDemo.rar
(141.39 Кб) Скачиваний: 102
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 17.11.2009 (Вт) 22:00

Я понимаю, но я решаю её от силы час. Времени нет заняться вплотную
Лучше день потерять — потом за пять минут долететь!

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Проверка существования Dll

Сообщение ANDLL » 17.11.2009 (Вт) 22:12

А у тебя dll НЕ нативная. Тем не менее у тебя эти хуки работают.Где то нестыковочка, не находишь?
У него нативная dll, нистуковка в том что ты почемуто называет нативные dll не таковыми... :)
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Проверка существования Dll

Сообщение Nord777 » 17.11.2009 (Вт) 22:20

ANDLL писал(а):У него нативная dll, нистуковка в том что ты почемуто называет нативные dll не таковыми...
А ты проект смотрел?
У него нетовская библа.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Проверка существования Dll

Сообщение ANDLL » 17.11.2009 (Вт) 22:59

Тогда сорри...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 18.11.2009 (Ср) 19:21

Nord777 писал(а):viter.alex там дел на три минуты, ты уже пол дня решаешь эту "проблему"
во вложении - без всяких dll

Наконец-то я смог попробовать. Но не работает.
С чего ты взял, что работает? Я пробовал, как только нашёл этот пример, внедрить его без dll, но не получилось. Хук не устанавливается. В том примере, что ты выложил, нажимаю «Install Mouse Hook», появляется сообщение, что операция успешно завершена, но «Mouse Hook Uninstalled»
Я не говорю, что ты не прав, у меня для этого недостаточно знаний, но хочу разобраться. Почему автор этой библиотеки, распространяет её именно в виде библиотеки, а не просто кодами?

ANDLL писал(а):Ну хотя бы через CreateObject.
У Type есть метод GetEvent который возвращает Event. У него есть метод AddEventHandler который угадай что делает

С событиями понятно. Как создать объект? Как задать ему нужный тип? Прошу прощения, если туплю
Лучше день потерять — потом за пять минут долететь!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Проверка существования Dll

Сообщение Nord777 » 18.11.2009 (Ср) 19:26

Наконец-то я смог попробовать. Но не работает.
Попробуй запустить не из под студии.
С чего ты взял, что работает?
С того, что работает :)
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Проверка существования Dll

Сообщение ANDLL » 18.11.2009 (Ср) 19:39

Как создать объект?
Через CreateObject если это COM-объект.
Через Assembly.GetType() если не COM
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 18.11.2009 (Ср) 20:12

Nord777 писал(а):Попробуй запустить не из под студии.

Действительно. Ничего не скажешь, очень удобно в отладке :).

Теперь всё-таки попробую разобраться с созданием объекта
Лучше день потерять — потом за пять минут долететь!

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Проверка существования Dll

Сообщение Nord777 » 18.11.2009 (Ср) 20:17

Действительно. Ничего не скажешь, очень удобно в отладке
Скорее всего автор библы где-то накосячил. У меня в каком-то из проектов хуки прекрасно работают и такой фигни не было замечено.


Add:
Теперь всё-таки попробую разобраться с созданием объекта
Удачи. Она тебе понадобится :wink:
Это так сказать для ввода в курс дела.
http://msdn.microsoft.com/en-us/library/system.reflection.eventinfo.addeventhandler.aspx
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Проверка существования Dll

Сообщение MIT » 23.11.2009 (Пн) 20:23

Nord777 писал(а):
Действительно. Ничего не скажешь, очень удобно в отладке
Скорее всего автор библы где-то накосячил. У меня в каком-то из проектов хуки прекрасно работают и такой фигни не было замечено.
Помниться я как-то умудрился сделать, что хуки приложения работали в Design-Time :? , вот это и правда было очень "удобно"...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Проверка существования Dll

Сообщение Joo » 24.11.2009 (Вт) 15:59

MIT писал(а):
Nord777 писал(а):
Действительно. Ничего не скажешь, очень удобно в отладке
Скорее всего автор библы где-то накосячил. У меня в каком-то из проектов хуки прекрасно работают и такой фигни не было замечено.
Помниться я как-то умудрился сделать, что хуки приложения работали в Design-Time :? , вот это и правда было очень "удобно"...


OFFTOP:
MIT, а что это у тебя за прикол такой, цвет текста делать еле заметный? Я предлагаю для тебя отключить возможность цветового оформления ;-)
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Проверка существования Dll

Сообщение MIT » 24.11.2009 (Вт) 16:07

Это не прикол, это принятая на некоторых форумах манера написания оффтопа, текста, к теме особо не относящегося. Какбэ невидимый пост, который можно и не читать.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Проверка существования Dll

Сообщение Joo » 24.11.2009 (Вт) 16:18

MIT писал(а):Это не прикол, это принятая на некоторых форумах манера написания оффтопа, текста, к теме особо не относящегося. Какбэ невидимый пост, который можно и не читать.


Не, ну понятно когда, сначала по теме, а потом еле видно не по теме, но когда весь пост такой, да еще и цитатой, то прочитать уже хочется )) Бельмо такое на странице, невольно думаешь не уж-то слепнешь уже :-D
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Проверка существования Dll

Сообщение Денис » 24.11.2009 (Вт) 16:32

[spoiler]Где там наш топик про внесение новых тегов в форумы?[/spoiler]
Подробнее о явлении спойлера в кино. И там же о применении в разметке.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Проверка существования Dll

Сообщение Joo » 24.11.2009 (Вт) 16:41

Денис писал(а):[spoiler]Где там наш топик про внесение новых тегов в форумы?[/spoiler]
Подробнее о явлении спойлера в кино. И там же о применении в разметке.


Да, очень нужный тег! Поддерживаю, надо "внедрякать"!
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 24.11.2009 (Вт) 18:25

Не получается назначить обработчик события и вызвать метод. По ссылке Nord777 ходил, смотрел, но как-то там очень запутанно все. Динамически создают обработчик, код в него тоже забивают динамически и динамически же вызывают. Сложновато это для меня пока.
Библиотека загружается, список методов и событий получить могу. Но как обработать нужное событие или выполнить метод.
Код: Выделить всё
Imports System
Imports System.Reflection
Public Class Form1
   Private Shared hooklib As [Assembly]
   Private Shared mhook As Object
   Private Shared handlerType As Type
   Private Shared LibPath As String = "c:\Мои документы\Visual Studio 2008\Projects\Source Code and Demo\WindowsHookDemo\WindowsHookDemo\bin\Debug\WindowsHookLib.dll"
   Private Shared d As [Delegate]
   Dim eInfoMClick As EventInfo
   Dim mInfoInstall As MethodInfo

   Delegate Sub MouseHookClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)

   'Загрузка библиотеки
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Try
         hooklib = [Assembly].LoadFile(LibPath)
      Catch ex As Exception
         MsgBox(String.Format("Не удалось загрузить библиотеку {0}.", LibPath), MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, Me.Text)
         Exit Sub
      End Try
      mhook = hooklib.CreateInstance("WindowsHook.MouseHook")

      Debug.Print("Events:")
      Debug.Indent()
      For Each ei As EventInfo In mhook.GetType.GetEvents
         Debug.Print(ei.Name)
      Next
      Debug.Unindent()

      Debug.Print("Methods:")
      Debug.Indent()
      For Each mi As MethodInfo In mhook.GetType.GetMethods
         Debug.Print(mi.Name)
      Next
      Debug.Unindent()
   End Sub

   'Кнопка, устанавливающая хук
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      Try
         mhook.GetType.GetMethod("InstallHook").Invoke(mhook, Nothing)
         Me.Text = ""
      Catch ex As Exception

      End Try
   End Sub

   'Кнопка, удаляющая хук
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      Try
         mhook.GetType.GetMethod("UninstallHook").Invoke(mhook, New Object())
      Catch ex As Exception

      End Try
   End Sub

   'По идее, это обработчик одниочного клика мышью
   Private Sub MouseSingleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
      Select Case e.Button
         Case Windows.Forms.MouseButtons.Left
            Me.Text += 1
      End Select
   End Sub
End Class


А попутно вопрос, что означают квадратные скобки? Не первый раз встречаю
Лучше день потерять — потом за пять минут долететь!

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Проверка существования Dll

Сообщение FireFenix » 24.11.2009 (Вт) 19:19

viter.alex писал(а):А попутно вопрос, что означают квадратные скобки? Не первый раз встречаю


Dim New as String - Ошибка синтаксиса
Dim [New] as String
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Re: Проверка существования Dll

Сообщение viter.alex » 24.11.2009 (Вт) 19:31

Получилось
Код: Выделить всё
Imports System
Imports System.Reflection
Public Class Form1
   Private Shared hooklib As [Assembly]
   Private Shared mhook As Object
   Private Shared handlerType As Type
   Private Shared LibPath As String = "c:\Мои документы\Visual Studio 2008\Projects\Source Code and Demo\WindowsHookDemo\WindowsHookDemo\bin\Debug\WindowsHookLib.dll"

   'Загрузка библиотеки
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Try
         hooklib = [Assembly].LoadFile(LibPath) 'Загружаем библиотеку
         mhook = hooklib.CreateInstance("WindowsHook.MouseHook")   'Создаём экземпляр объекта
         'Добавляем обработчик события на одинарный клик
         mhook.GetType.GetEvent("MouseClick").AddEventHandler(mhook, New MouseEventHandler(AddressOf MouseSingleClick))
         'Добавляем обработчик события на двойной клик
         mhook.GetType.GetEvent("MouseDoubleClick").AddEventHandler(mhook, New MouseEventHandler(AddressOf MouseDblClick))
      Catch ex As Exception
         MsgBox(String.Format("Не удалось загрузить библиотеку {0}.", LibPath), MsgBoxStyle.Critical Or MsgBoxStyle.OkOnly, Me.Text)
         Exit Sub
      End Try
   End Sub

   'Кнопка, устанавливающая хук
   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      Try
         mhook.GetType.GetMethod("InstallHook").Invoke(mhook, New Object() {})
         Me.Text = "Хук установлен"
      Catch ex As Exception
         Me.Text = "Хук не удалось установить"
      End Try
   End Sub

   'Кнопка, удаляющая хук
   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      Try
         mhook.GetType.GetMethod("RemoveHook").Invoke(mhook, New Object() {})
         Me.Text = "Хук снят"
      Catch ex As Exception
         Me.Text = "Хук не удалось снять"
      End Try
   End Sub

   'По идее, это обработчик одниочного клика мышью
   Private Sub MouseSingleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
      Select Case e.Button
         Case Windows.Forms.MouseButtons.Left
            Label1.Text = "Одниарный клик левой"
         Case Windows.Forms.MouseButtons.Middle
            Label1.Text = "Одниарный клик средней"
         Case Windows.Forms.MouseButtons.Right
            Label1.Text = "Одниарный клик правой"
      End Select
   End Sub

   Private Sub MouseDblClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
      Select Case e.Button
         Case Windows.Forms.MouseButtons.Left
            Label1.Text = "Двойной клик левой"
         Case Windows.Forms.MouseButtons.Middle
            Label1.Text = "Двойной клик средней"
         Case Windows.Forms.MouseButtons.Right
            Label1.Text = "Двойной клик правой"
      End Select
   End Sub
End Class

Вот ключевая строка:
mhook.GetType.GetEvent("MouseClick").AddEventHandler(mhook, New MouseEventHandler(AddressOf MouseSingleClick))
Чем отличается строка New Object() от New Object() {}? Из-за этого не работал вызов процедуры
Лучше день потерять — потом за пять минут долететь!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Проверка существования Dll

Сообщение MIT » 24.11.2009 (Вт) 19:41

viter.alex писал(а):Чем отличается строка New Object() от New Object() {}?
Да поправит меня знающий, но по-моему, "{}" отвечает за инициализацию создаваемого массива (эквивалентно Dim arr() as object: redim arr(-1) или Dim arr(-1) as object)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Проверка существования Dll

Сообщение ANDLL » 24.11.2009 (Вт) 21:05

Чем отличается строка New Object() от New Object() {}?
Первый создает объект, второй создает массив длины 0
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

    TopList