Поскольку в последнее время многие пользователи сети задают вопросы, я просто разберусь с ними. Если у вас есть вопросы, вы можете оставить их в комментариях.
1. Создайте новую DLL.
Откройте VB6 -> Файл -> Новый проект -> Выберите ActiveX DLL -> ОК.
2. Переименуйте проект и класс по умолчанию.
Переименование проекта: Проект --> Свойства проекта 1 (это имя соответствует имени проекта в форме) --> Переименуйте «Имя проекта» в ASP2DLL в открытом диалоговом окне (после регистрации компонента DLL в системе). метод вызова по умолчанию в asp: «имя проекта.имя класса») -> ОК
Переименование класса. Переименуйте имя в Demo в окне свойств.
3. Определите базовые объекты ASP.
Добавить модуль: Проект -> Добавить модуль -> Выбрать «Модуль» -> Открыть.
Переименуйте модуль: Project Explorer -> Module -> Module1 -> Переименуйте Module1 в «ASPMod» в окне свойств.
Добавьте код модуля. Этот код применим практически ко всем компонентам asp DLL, инкапсулированным в vb. Просто измените имя ASP2DLL на имя проекта или сохраните его при вызове. Код выглядит следующим образом:
Скопируйте код кода следующим образом:
Публичный objContext как ObjectContext
Публичное приложение как ASPTypeLibrary.Application
Публичный сервер как ASPTypeLibrary.Server
Публичный сеанс как ASPTypeLibrary.Session
Публичный ответ как ASPTypeLibrary.Response
Публичный запрос как ASPTypeLibrary.Request
Публичная подпрограмма ASP2DLL_Initialize()
При ошибке Возобновить Далее
Установите objContext = GetObjectContext.
Установить Приложение = objContext.Item("Приложение")
Установить Сервер = objContext.Item("Сервер")
Set Session = objContext.Item("Сессия")
Установить запрос = objContext.Item("Запрос")
Установить ответ = objContext.Item("Ответ")
Конец субтитра
Публичная подпрограмма ASP2DLL_Terminate()
При ошибке Возобновить Далее
Установить приложение = ничего
Установить сервер = ничего
Установить сеанс = ничего
Установить запрос = Ничего
Установить ответ = Ничего
Установить objContext = Ничего
Конец субтитра
Открытая функция Eval (ByRef strEval)
Dim EvalObject как новый ScriptControl
EvalObject.Language = "VBScript"
Eval = EvalObject.Eval(strEval)
Установить EvalObject = Ничего
Конечная функция
4. Сохраните вновь созданную DLL.
Файл -> Сохранить проект, подтвердить все действия и сохранить все модули, модули классов и файлы проекта в одной папке.
5. Вызов объектов ASP в модулях классов
Обозреватель проекта -> Модуль класса -> Дважды щелкните «Демо», чтобы переключиться в редактор кода модуля демонстрационного класса, вставьте код, инициализируйте вызов класса и уничтожение класса, код выглядит следующим образом:
Скопируйте код кода следующим образом:
Частный подкласс_Initialize()
ASP2DLL_Инициализация
Конец субтитра
Частный подкласс_Terminate()
ASP2DLL_Завершить
Конец субтитра
На этом этапе базовая структура DLL завершена. Теперь вы можете выполнить необходимые инкапсулированные функции в соответствии с вашими потребностями.
6. Создайте новую тестовую функцию.
Вставьте следующие две тестовые функции в модуль класса Demo.
Скопируйте код кода следующим образом:
Публичный субпривет()
Response.Write ("Привет, мир!")
Выход из подменю
Конец субтитра
7. Скомпилируйте и сгенерируйте DLL.
Файл -> Создать ASP2DLL.dll -> Выберите папку, в которой находится проект, и подтвердите, ОК. Если на этом этапе нет сообщения об ошибке, это доказывает, что компонент dll был скомпилирован успешно.
8. Зарегистрируйте и удалите компоненты.
Создается в каталоге, где находится компонент ASP2DLL.dll.
В пакетном файле «Registration.bat» введите:
Скопируйте код кода следующим образом:
iisreset/стоп
regsvr32/sASP2DLL.dll
iisreset/старт
Пакетный файл «Uninstall.bat», введите:
Скопируйте код кода следующим образом:
iisreset/стоп
regsvr32 /u /sASP2DLL.dll
iisreset/старт
Дважды щелкните файл Registration.bat. Если регистрация прошла успешно, появится сообщение: «DllRegisterServer в ASP2DLL.dll прошла успешно».
9. Вызовите недавно инкапсулированные компоненты DLL и протестируйте функции в программе ASP.
На шаге 2 мы знаем, что «когда компонент DLL зарегистрирован в системе, метод вызова по умолчанию в asp — это имя проекта. Имя класса», поэтому объект должен быть создан следующим образом: set Obj = Server.CreateObject («Имя проекта. Имя класса»), код следующий:
Скопируйте код кода следующим образом:
<%
ДимASP2DLL
Установите ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.привет()
SetASP2DLL = Ничего
%>
10. Ссылка для скачивания пакета, включая файлы проекта и весь связанный контент (ссылка для скачивания обновления 20110221). Загрузка пакета.
Несколько моментов, на которые следует обратить внимание при компиляции DLL:
1. Избегайте использования зарезервированных ключевых слов VB в качестве имен функций или переменных;
2. Обычные и некоторые функции Vbscript, такие как Eval, должны загружать «Проект -> Ссылка -> Microsoft Script Control 1.0» и «Регулярные выражения Microsoft VBScript 5.5»;
3. Инкапсуляция не может обеспечить существенного повышения скорости, а виртуальным хостам и удаленным серверам необходимы разрешения на регистрацию компонентов;
4. Для существующих имен компонентов или измененных файлов dll необходимо сначала остановить IIS, а затем перезапустить IIS, чтобы зарегистрировать компонент dll;
5. Ссылка для скачивания оптимизированной зеленой версии VB6 SP6.
Исходный текст:?cateID=20 Спасибо автору за его труд. Материал отличный, но доступ к сайту слишком медленный.