Como tem havido muitos internautas perguntando recentemente, vou simplesmente resolver o problema. Se você tiver alguma dúvida, pode deixá-la nos comentários.
1. Crie uma nova DLL
Abra VB6 -> Arquivo -> Novo Projeto -> Selecione DLL ActiveX -> OK
2. Renomeie o projeto e a classe padrão
Renomeação do projeto: Projeto -> Propriedades do Projeto 1 (este nome corresponde ao nome do projeto no formulário) -> Renomeie o "Nome do Projeto" para ASP2DLL na caixa de diálogo aberta (após o componente DLL ser registrado no sistema, o o método de chamada padrão em asp é "nome do projeto.nome da classe") -> OK
Renomear Classe Renomeie o nome para Demo na janela de propriedades
3. Defina objetos básicos ASP
Adicionar módulo: Projeto -> Adicionar módulo -> Selecione "Módulo" -> Abrir
Renomeie o módulo: Project Explorer-->Module--Module1-->Renomeie Module1 para "ASPMod" na janela de propriedades
Adicione o código do módulo. Este código é aplicável a quase todos os componentes asp DLL encapsulados em vb. Basta alterar o ASP2DLL para o nome do projeto ou mantê-lo consistente ao chamar.
Copie o código do código da seguinte forma:
ObjContext público como ObjectContext
Aplicativo público como ASPTypeLibrary.Application
Servidor público como ASPTypeLibrary.Server
Sessão pública como ASPTypeLibrary.Session
Resposta pública como ASPTypeLibrary.Response
Solicitação pública como ASPTypeLibrary.Request
Sub público ASP2DLL_Initialize()
Em caso de erro, retomar o próximo
Definir objContext = GetObjectContext
Definir Aplicativo = objContext.Item("Aplicativo")
Definir Servidor = objContext.Item("Servidor")
Definir Sessão = objContext.Item("Sessão")
Definir Solicitação = objContext.Item("Solicitação")
Definir Resposta = objContext.Item("Resposta")
Finalizar sub
Sub público ASP2DLL_Terminate()
Em caso de erro, retomar o próximo
Definir aplicativo = nada
Definir servidor = nada
Definir sessão = nada
Definir solicitação = nada
Definir resposta = nada
Definir objContext = Nada
Finalizar sub
Avaliação de função pública (ByRef strEval)
Dim EvalObject como novo ScriptControl
EvalObject.Language = "VBScript"
Eval = EvalObject.Eval(strEval)
Definir EvalObject = Nada
Função final
4. Salve a DLL recém-criada
Arquivo -> Salvar projeto, confirme totalmente e salve todos os módulos, módulos de classe e arquivos de projeto em uma pasta
5. Chame objetos ASP em módulos de classe
Explorador de projetos -> Módulo de classe -> Clique duas vezes em Demo para mudar para o editor de código do módulo de classe Demo, cole o código, inicialize a chamada de classe e a destruição de classe, o código é o seguinte:
Copie o código do código da seguinte forma:
Subclasse Privada_Initialize()
ASP2DLL_Inicializar
Finalizar sub
Subclasse Privada_Terminate()
ASP2DLL_Terminate
Finalizar sub
Neste ponto, uma estrutura básica de DLL está concluída. Agora você pode concluir as funções encapsuladas necessárias de acordo com suas próprias necessidades.
6. Crie uma nova função de teste
Cole as duas funções de teste a seguir no módulo da classe Demo.
Copie o código do código da seguinte forma:
Sub público olá()
Response.Write ("Olá, mundo!")
Sair do sub
Finalizar sub
7. Compilar e gerar DLL
Arquivo-->Gerar ASP2DLL.dll-->Selecione a pasta onde o projeto está localizado e confirme, OK. Se não houver nenhuma mensagem de erro neste ponto, isso prova que o componente dll foi compilado com sucesso.
8. Registre e desinstale componentes
Criado no diretório onde o componente ASP2DLL.dll está localizado
Arquivo em lote "Registration.bat", insira:
Copie o código do código da seguinte forma:
iisreset/parar
regsvr32/sASP2DLL.dll
iisreset/iniciar
Arquivo em lote "Uninstall.bat", digite:
Copie o código do código da seguinte forma:
iisreset/parar
regsvr32 /u /sASP2DLL.dll
iisreset/iniciar
Clique duas vezes para executar o registro.bat. Se o registro for bem-sucedido, será exibido: "DllRegisterServer em ASP2DLL.dll foi bem-sucedido".
9. Chame os componentes DLL recém-encapsulados e teste as funções no programa ASP
No passo 2, sabemos que "quando o componente DLL é registrado no sistema, o método de chamada padrão no asp é 'nome do projeto. nome da classe'", portanto, o objeto deve ser criado assim: set Obj = Server.CreateObject ("Nome do projeto. Nome da classe"), o código é o seguinte:
Copie o código do código da seguinte forma:
<%
DimASP2DLL
Definir ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.hello()
SetASP2DLL = Nada
%>
10. Link para download do pacote, incluindo arquivos do projeto e todo o conteúdo relacionado (link para download da atualização 20110221) Download do pacote
Vários pontos a serem observados ao compilar uma DLL:
1. Evite usar palavras-chave reservadas do VB como nomes de funções ou variáveis;
2. Regular e algumas funções Vbscript, como Eval, precisam carregar "Projeto -> Referência -> Microsoft Script Control 1.0" e "Microsoft VBScript Regular Expressions 5.5";
3. O encapsulamento não pode trazer uma melhoria essencial na velocidade e os hosts virtuais e servidores remotos precisam de permissões de registro de componentes;
4. Para nomes de componentes existentes ou arquivos DLL modificados, você deve primeiro parar o IIS e depois reiniciar o IIS para registrar o componente DLL;
5. Link para download da versão verde simplificada do VB6 SP6
Texto original de:?cateID=20 Obrigado ao autor pelo seu trabalho árduo O material é ótimo, mas o acesso ao site é muito lento.