1. Компьютерные новости
- Adobe Systems отозвала свой иск против Дмитрия Склярова
2. VB: Советы разработчику
- Работаем с Visual Basic DLL
3. Новости Relib.com
- C++: Темы обсуждения
- Delphi: Темы обсуждения
- ASP: Темы обсуждения
- VB: Темы обсуждения
- Java: Темы обсуждения
- БД: Темы обсуждения
Adobe Systems отозвала свой иск против Дмитрия Склярова
23.07.02 компания Adobe Systems, разработчик программного обеспечения для издательской индустрии, согласилась под давлением общественности отозвать иск против российского программиста Дмитрия Склярова, арестованного на прошлой неделе по обвинению в нарушении закона о защите авторских прав Digital Millennium Copyright Act .
Скляров является одним из авторов программы Advanced eBook Processor, которая позволяет делать копии электронных книг формата eBook, преобразовывая их в PDF-файлы.
Старший вице-президент Adobe Коллин Пулиот (Colleen Pouliot) выступил с заявлением, что компания продолжит защищать свои авторские права, однако в этом конкретном случае преследование российского программиста не будет способствовать интересам вовлеченных в конфликт сторон. Решение об отзыве иска было принято после встречи с адвокатами Склярова из фонда EFF, а также состоявшихся в США демонстраций в поддержку программиста. По словам штатного юриста EFF Робин Гросс (Robin Gross), основной причиной положительного решения Adobe было возмущение общественности. В то же время, конфликт еще не исчерпан - Дмитрий Скляров останется в тюрьме вплоть до тех пор, пока решение об его освобождении не будет принято прокуратурой США. "Программа Advanced eBook Processor от "Элкомсофта" больше не будет продаваться в США, и, таким образом, закон DMCA работает", - заявил м-р Пулиот. Мадам Гросс добавляет, что арест Склярова по всей вероятности будет уроком для других программистов и хакеров.
Многие VB-программисты, пытающиеся создавать Visual Basic DLL и затем использовать их в других программах, сталкиваются с ошибкой 453. Проблема вроде бы непонятна - для объявления функций DLL используется выражение Declare, но отладчик возвращает:
Runtime error 453 : Specified DLL function not found.
Где же проблема? Оказывается, Visual Basic способен создавать только единственный тип DLL, так называемые ActiveX DLL. Поэтому создавая приложение с вызовом ActiveX DLL вы не можете использовать выражение Declare, которое используется для объявления процедур и функций Win32 DLL в программе Visual Basic. В этом нет необходимости для ActiveX-библиотек или других COM-объектов (даже если они написаны на C++). Как вы знаете, добавляя ссылку reference в проекте, вы получаете доступ к COM-объекту - поэтому в случае с Visual Basic DLL надо поступать точно также. Например, предположим, что вы имеете следующую функцию, которая находится внутри класса Class1 в ActiveX DLL по имени MyLibrary:
Public Function Func1(x As Integer) As Integer
Func1 = x * 2
End Function
Теперь установим ссылку на библиотеку для использования этой функции. Создайте стандартный EXE-проект, выберите Project-References, затем найдите нашу библиотеку (MyLibrary) и выбирите ее. Вставьте в форму следующий код:
Private Sub Form_Load()
Dim objLib As MyLibrary.Class1
Set objLib = New MyLibrary.Class1
MsgBox objLib.Func1(5)
End Sub
При выполнении этой программы вы получите окно сообщения со значением 10, т.е. функция из библиотеки вызвана правильно.
Подробнее по вопросу создания ActiveX-компонентов см. MSDN Library.
Подведены итоги конкурса-викторины для VB-программистов, который проводился с 1 июня по 1 июля на сайте Relib.com. Правильные ответы на вопросы и имена победителей уже опубликованы на сайте.