Parce que de nombreux internautes l'ont demandé récemment, je vais simplement régler le problème. Si vous avez des questions, vous pouvez les laisser dans les commentaires.
1. Créez une nouvelle DLL
Ouvrez VB6-->Fichier-->Nouveau projet-->Sélectionnez la DLL ActiveX-->OK
2. Renommez le projet et la classe par défaut
Renommer le projet : Projet --> Propriétés du projet 1 (ce nom correspond au nom du projet dans le formulaire) --> Renommez le "Nom du projet" en ASP2DLL dans la boîte de dialogue ouverte (une fois le composant DLL enregistré dans le système, le la méthode d'appel par défaut dans asp est "nom du projet.nom de la classe") -> OK
Class Rename Renommez le nom en Demo dans la fenêtre des propriétés
3. Définir les objets de base ASP
Ajouter un module : Projet-->Ajouter un module-->Sélectionner "Module"-->Ouvrir
Renommez le module : Project Explorer-->Module--Module1-->Rename Module1 en "ASPMod" dans la fenêtre des propriétés
Ajoutez le code du module. Ce code est applicable à presque tous les composants asp DLL encapsulés dans vb. Remplacez simplement l'ASP2DLL par le nom du projet ou gardez-le cohérent lors de l'appel.
Copiez le code comme suit :
objContext public en tant qu'ObjectContext
Application publique en tant que ASPTypeLibrary.Application
Serveur public en tant que ASPTypeLibrary.Server
Session publique en tant que ASPTypeLibrary.Session
Réponse publique en tant que ASPTypeLibrary.Response
Requête publique en tant que ASPTypeLibrary.Request
Sous-public ASP2DLL_Initialize()
En cas d'erreur, reprendre ensuite
Définir objContext = GetObjectContext
Définir Application = objContext.Item("Application")
Définir le serveur = objContext.Item("Serveur")
Définir la session = objContext.Item("Session")
Définir la demande = objContext.Item("Demande")
Définir la réponse = objContext.Item("Réponse")
Fin du sous-marin
Sous-public ASP2DLL_Terminate()
En cas d'erreur, reprendre ensuite
Définir l'application = Rien
Définir le serveur = Rien
Définir la session = Rien
Définir la demande = Rien
Définir la réponse = Rien
Définir objContext = Rien
Fin du sous-marin
Évaluation de fonction publique (ByRef strEval)
Dim EvalObject en tant que nouveau ScriptControl
EvalObject.Language = "VBScript"
Eval = EvalObject.Eval(strEval)
Définir EvalObject = Rien
Fonction de fin
4. Enregistrez la DLL nouvellement créée
Fichier -> Enregistrer le projet, confirmer jusqu'au bout et enregistrer tous les modules, modules de classe et fichiers de projet dans un seul dossier
5. Appelez des objets ASP dans les modules de classe
Explorateur de projet --> Module de classe --> Double-cliquez sur Démo pour passer à l'éditeur de code du module de classe Démo, collez le code, initialisez l'appel de classe et la destruction de classe, le code est le suivant :
Copiez le code comme suit :
Sous-classe privée_Initialize()
ASP2DLL_Initialize
Fin du sous-marin
Sous-classe privée_Terminate()
ASP2DLL_Terminate
Fin du sous-marin
À ce stade, un cadre DLL de base est terminé. Vous pouvez désormais compléter les fonctions encapsulées requises en fonction de vos propres besoins.
6. Créez une nouvelle fonction de test
Collez les deux fonctions de test suivantes sous le module de classe Demo.
Copiez le code comme suit :
Public Sub bonjour()
Response.Write ("Bonjour tout le monde !")
Quitter le sous-marin
Fin du sous-marin
7. Compilez et générez des DLL
Fichier-->Générer ASP2DLL.dll-->Sélectionnez le dossier où se trouve le projet et confirmez, OK. S'il n'y a pas de message d'erreur à ce stade, cela prouve que le composant dll a été compilé avec succès.
8. Enregistrez et désinstallez les composants
Créé dans le répertoire où se trouve le composant ASP2DLL.dll
Fichier batch "Registration.bat", saisissez :
Copiez le code comme suit :
iisreset/stop
regsvr32/sASP2DLL.dll
iisreset/démarrer
Fichier batch "Uninstall.bat", saisissez :
Copiez le code comme suit :
iisreset/stop
regsvr32 /u /sASP2DLL.dll
iisreset/démarrer
Double-cliquez pour exécuter le fichier Registration.bat. Si l'enregistrement réussit, le message suivant s'affichera : "DllRegisterServer dans ASP2DLL.dll est réussi."
9. Appelez les composants DLL nouvellement encapsulés et testez les fonctions dans le programme ASP.
À l'étape 2, nous savons que "lorsque le composant DLL est enregistré dans le système, la méthode d'appel par défaut dans asp est 'nom du projet. nom de la classe'", par conséquent, l'objet doit être créé comme ceci : set Obj = Server.CreateObject ("Nom du projet. Nom de la classe"), le code est le suivant :
Copiez le code comme suit :
<%
DimASP2DLL
Définir ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.bonjour()
SetASP2DLL = Rien
%>
10. Lien de téléchargement du package comprenant les fichiers du projet et tout le contenu associé (lien de téléchargement de la mise à jour 20110221) Téléchargement du package
Quelques points à noter lors de la compilation d'une DLL :
1. Évitez d'utiliser des mots-clés réservés VB comme noms de fonctions ou de variables ;
2. Les fonctions régulières et certaines fonctions Vbscript telles que Eval doivent charger « Projet-->Référence-->Microsoft Script Control 1.0 » et « Microsoft VBScript Regular Expressions 5.5 » ;
3. L'encapsulation ne peut pas apporter une amélioration essentielle de la vitesse, et les hôtes virtuels et les serveurs distants ont besoin d'autorisations d'enregistrement de composants ;
4. Pour les noms de composants existants ou les fichiers DLL modifiés, vous devez d'abord arrêter IIS, puis redémarrer IIS pour enregistrer le composant DLL ;
5. Lien de téléchargement de la version verte simplifiée VB6 SP6
Texte original de :?cateID=20 Merci à l'auteur pour son travail acharné. Le contenu est excellent, mais l'accès au site Web est trop lent.