Première partie de la série Introduction de base et maîtrise des composants Asp
. J'ai toujours voulu écrire des applications de composants. Pendant ce temps, je peux enfin écrire quelque chose que j'aime.
J'espère qu'après avoir étudié ces tutoriels, vous pourrez écrire vos propres composants à votre guise.
Chaque article n'est peut-être pas lié, mais décrit simplement certains problèmes qui surviennent lors de l'écriture des composants.
Bienvenue à tous pour critiquer et corriger
l'environnement : winxp+vb6+sp6+visual interdev6.0
Comme premier article, écrivons d'abord un composant relativement simple
qui remplit les fonctions suivantes : saisissez deux nombres et ajoutez-les, renvoyez le résultat ajouté
, ouvrez vb6 et créez un nouveau projet Activex Dll. Changez le nom du projet en fCom et le nom de la classe en fC1.
Cliquez sur Menu->Outils->Ajouter un processus.
Nous entrons Ajouter dans le nom, sélectionnons la fonction comme type, sélectionnons public comme portée, puis confirmons pour
générer le code suivant. continuera à l'améliorer.
code de programme
Option explicite
Fonction publique Ajouter (ByVal a As Long, ByVal b As Long) As Long
Ajouter=a+b
Fonction de fin
Ok, un composant simple a été écrit. Cliquez sur menu->Fichier->Générer le fichier fCom.dll
pour confirmer. Il y aura le fichier fCom.dll dans le répertoire.
Testez
l'ouverture de Visual Interdev6.0 et générez un fichier asp. l'utiliser ? Interdev, car il a une fonction d'invite de code, est cohérent avec l'environnement IDE de VB et est pratique pour l'écriture
code de programme
<%@ Langage=VBScript %>
<HTML>
<TÊTE>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<CORPS>
<%
set obj=server.CreateObject("fCom.fC1")
'Faites attention à la phrase suivante, car la fonction a une valeur de retour, vous ne pouvez pas l'écrire dans la méthode suivante, sinon une erreur sera signalée dans IE
'obj.Add(3,4)
'Type d'erreur :
'Erreur du compilateur Microsoft VBScript (0x800A0414)
'Vous ne pouvez pas utiliser de parenthèses lors de l'appel d'un sous-programme
'/xml/fc1.asp, ligne 9, colonne 12
'obj.Add(3,4)
'Ce qui suit est la bonne façon d'écrire
faible c
c=obj.Add(3,4)
Réponse.Écrire c
%>
</CORPS>
</HTML>
Configurez le répertoire virtuel, exécutez ce fichier asp dans IE et obtenez le résultat 7.
Le premier article est terminé. Je vous souhaite à tous une bonne étude.
Asp Components Basic Introduction and Mastery Series 2
Comment enregistrer les composants
1. Le chemin absolu du composant regsvr32
est le suivant :
code de programme
regsvr32 c:testfc1.dll
Étant donné que le composant peut être utilisé tant qu'il est enregistré, cela n'a rien à voir avec l'emplacement du composant.
2.
Quand cet enregistrement est-il requislors de l'enregistrement dans le gestionnaire de composants COM+
: Les composants doivent être enregistrés avant de pouvoir s'exécuter normalement après avoir utilisé les services COM+. Si le composant est uniquement enregistré auprès de regsvr32, il ne peut toujours pas être utilisé.Comment
utiliser le composant.
code de programme
set obj=server.createobject("Nom du projet. Nom de la classe")
Appelez ensuite son attribut de méthode.
Comment désinstaller le composant
1. Le chemin absolu du composant regsvr32
est le suivant :
code de programme
regsvr32 c:testfc1.dll /u
u paramètre composant anti-enregistrement
2. Supprimez simplement le composant dans le gestionnaire de composants COM+
et la troisième partie de la série de maîtrise :
Comment utiliser les propriétés
pour ouvrir vb6 et créer un nouveau projet Activex Dll. Remplacez le nom du projet par fCom et le nom de la classe par fC2.
Cliquez sur Menu->Outils->Ajouter un processus.
Nous entrons myName dans le nom, sélectionnons l'attribut comme type, sélectionnons public comme portée, puis confirmons
à nouveau l'opération : entrez Age dans le nom, sélectionnez l'attribut comme type, sélectionnez public dans la portée, puis confirmez
et opérez à nouveau : entrez peopleInfo dans le nom, sélectionnez fonction comme type, sélectionnez public dans la portée, puis confirmez
le code. est la suivante :
code de programme
Option explicite
'Les variables locales contenant des valeurs d'attribut ne peuvent être utilisées que dans les classes
mvarmyName privé sous forme de chaîne
MvarAge privé sous forme d'entier
'Laisser écrire les attributs (Laisser les attributs : ce processus attribue une valeur à un attribut.)
Propriété publique laisser l'âge (ByVal vData As Integer)
mvarAge = vDonnées
Propriété de fin
'Obtenir l'attribut de lecture (ce processus obtient la valeur d'un attribut.)
La propriété publique obtient l'âge () sous forme d'entier
Âge = mvarAge
Propriété de fin Propriété
publique Let myName (ByVal vData As String)
mvarmyName = vData
Propriété de fin Propriété
publique Obtenir monNom() sous forme de chaîne
monNom = mvarmyName
Fin de la propriété
Fonction publique peopleInfo () sous forme de chaîne
peopleInfo = "Nom : " & mvarmyName & " Age : " & mvarAge
Fonction de fin
Ok, un composant simple a été écrit. Cliquez sur menu->Fichier->Générer le fichier fCom.dll
pour confirmer. Il y aura le fichier fCom.dll dans le répertoire.
Testez
l'ouverture de Visual Interdev6.0 et générez un fichier asp. l'utiliser ? Interdev, car il a une fonction d'invite de code, est cohérent avec l'environnement IDE de VB et est pratique pour l'écriture
code de programme
<%@ Langage=VBScript %>
<HTML>
<CORPS>
<%
set obj=server.CreateObject("fCom.fC2")
faible c
'Ce qu'on appelle ici est la propriété Let du composant
obj.myName="Tornade"
obj.Âge =20
c=obj.peopleInfo()
Réponse.Écrire c
'Ce qu'on appelle ici est la propriété Get du composant
Réponse.Écrivez "<br>"
Réponse.Write obj.myName
Réponse.Écrivez "<br>"
Réponse.Écrire obj.Âge
%>
</CORPS>
</HTML>
Configurez le répertoire virtuel et exécutez ce fichier asp dans IE. Les résultats sont les suivants :
Nom : Tornado Âge : 20.
tornade
20
À suivre
Série d'introduction et de maîtrise des composants Asp 4
Problèmes de tableau
Les tableaux sont beaucoup utilisés dans les programmes et sont plus susceptibles de causer des problèmes.
Examinons cela à travers un petit exemple
Ouvrir vb6 et en créer un nouveau. Projet Activex Dll. Changez le nom du projet en fCom et le nom de la classe en fC4.
Cliquez sur Menu->Outils->Ajouter un processus.
Nous entrons AcceptArray1 dans le nom, sélectionnons le sous-programme comme type, sélectionnons public comme plage, puis confirmons
à nouveau l'opération : entrez. Acceptez Array2 dans le nom et sélectionnez la fonction comme type, sélectionnez public comme portée, puis confirmez.
code de programme
'Fonction : transmettez l'adresse du tableau au composant, utilisez le mot-clé ByRef, puis attribuez et retournez
Public Sub AcceptArray1 (ByRef varray As Variant) As Variant
varray(0) = "Tornade"
varray(1) = "20"
End Sub
'Fonction : renvoie un tableau de chaînes
Fonction publique AcceptArray2() comme variante
Dim a(2) comme variante
a(0) = "Tornade"
une(1) = "20"
AcceptArray2=a
Fin de la fonction
Ok, un composant est écrit. Cliquez sur menu->Fichier->Générer le fichier fCom.dll
pour confirmer. Il y aura le fichier fCom.dll dans le répertoire.
Testez
l'ouverture de Visual Interdev6.0 et générez un
code de programme de fichier asp.
<%@ Langage=VBScript %>
<HTML>
<CORPS>
<%
obj obscur
set obj = serveur.createobject("fCom.fC4")
atténuer un(2)
'Tester la méthode du premier composant
obj.AcceptArray1(a)
réponse.écrire un(0)
réponse.écrire "<br>"
réponse.écrire un(1)
réponse.écrire "<br>"
'Tester la méthode du deuxième composant
faible b
b=obj.AcceptArray2()
pour i=0 à ubound(b)
Réponse.Écrivez b(i)
réponse.écrire "<br>"
suivant
%>
</CORPS>
</HTML>
Configurez le répertoire virtuel et exécutez ce fichier asp dans IE. Les résultats sont les suivants :
Tornado.
20
tornade
20
Pour résumer :
les chaînes et les nombres sont passés par valeur ou renvoyés comme valeur de retour.
En cas de passage par référence, définissez le type du paramètre sur Variant. Faire cela peut éviter certaines erreurs. Cependant, essayez de réduire autant que possible les paramètres passés par référence.
À suivre.
Introduction et maîtrise du composant Asp série 5.
Nous pouvons souvent le constater lors de la connexion à la base de données et de l'ouverture du jeu d'enregistrements, comme suit :
code de programme
rs.Open strsql, conn, adOpenDynamic, adLockPessimistic
Lorsque vous tapez ",", une liste de types de curseurs ou de types de verrous apparaîtra pour la sélection.
Parfois, afin de simplifier, nous rs.open strsql,conn,1,3.
La première méthode est-elle plus professionnelle ? Voyons comment
ouvrir vb6 en asp et créer un nouveau projet Activex Dll. Le nom du projet est changé en fCom et le nom de la classe est changé en fC5
code de programme
Option explicite
'Définir le type d'énumération
Interface d'énumération publique
icpremier = 1
icseconde = 2
ictrois = 3
icfour = 4
iccinq=5
icsix=6
icserven=7
hauteur de glace = 8
End Enum
'Définir la fonction
Fonction publique CallDat (ByVal idig As Integer, ByVal ics As Interfacedig) Comme variante
CallDat = idig * ics
Fin de la fonction
Ok, un composant est écrit. Cliquez sur menu->Fichier->Générer le fichier fCom.dll
pour confirmer. Il y aura le fichier fCom.dll dans le répertoire.
Testez
l'ouverture de Visual Interdev6.0 et générez un
code de programme de fichier asp.
<%@ Langage=VBScript %>
<HTML>
<CORPS>
<%
'Définition, vous pouvez également mettre cette partie dans un fichier, tout comme le jeu d'enregistrements d'ado <!--#include file="adovbs.inc"-->
const icfirst = 1
const icseconde = 2
const ictrois = 3
const icfour = 4
const icfive = 5
const icsix = 6
const icserven = 7
hauteur de glace constante = 8
set obj=server.CreateObject("fCom.fc5")
'iceight ou 8 peuvent être utilisés ici, mais le premier rend le code plus lisible
a= obj.CallDat(4,iceight)
Réponse. Écrivez un
Réponse.Écrivez "<br>"
a= obj.CallDat(4,8)
Réponse. Écrivez un
%>
<P> </P>
</CORPS>
</HTML>
Configurez le répertoire virtuel et exécutez ce fichier asp dans IE Les résultats sont les suivants :
32.
32
Introduction de base des composants Asp et série de maîtrise 6
Gestion des erreurs
S'il y a une erreur sur la page et qu'il n'y a pas de gestion des erreurs, la page affichera une erreur que l'utilisateur pourrait ne pas comprendre.
Peut être utilisé dans un script asp
code de programme
En cas d'erreur, reprendre ensuite
…
si Err.Number<>0 alors
Response.Write Err.Description
Terminer si
Mais que se passe-t-il si quelque chose ne va pas dans le composant ? Cette méthode peut détecter des erreurs, mais comment connaître l’erreur spécifique ?
Nous pouvons ajouter une gestion des erreurs au composant pour renvoyer des erreurs, afin que nous puissions facilement voir des informations d'erreur plus détaillées et nous aider à résoudre les erreurs.
Utilisez Err.Raise, Raise est utilisé pour générer des erreurs d'exécution.
Ouvrez vb6 et créez un nouveau projet Activex Dll. Le nom du projet est changé en fCom et le nom de la classe est changé en fC6
code de programme
Option explicite
Public Sub showerror1()
En cas d'erreur, GoTo ErrorHandle
Diminuer en double
je = 1/0
Poignée d'erreur :
Err.Raise Err.Number, Err.Source, Err.Description
End Sub
'Générer des erreurs personnalisées
Public Sub showerror2()
Err.Raise 600, "Erreur auto-définie 600", "Ceci est une erreur décrivant votre propre programme"
End Sub
Ok, un composant est écrit. Cliquez sur menu->Fichier->Générer le fichier fCom.dll
pour confirmer. Il y aura le fichier fCom.dll dans le répertoire.
Testez
l'ouverture de Visual Interdev6.0 et générez un
code de programme de fichier asp.
<%@ Langage=VBScript %>
<HTML>
<CORPS>
<%
'La phrase suivante est très importante
en cas d'erreur, reprendre ensuite
set obj=server.CreateObject("fCom.fc6")
obj.showerror1()
« S'il n'y a pas de gestion des erreurs, une interface d'erreur sera générée, ce qui n'est pas du tout professionnel.
« La plage de 0 à 512 est réservée aux erreurs système ; la plage de 513 à 65 535 peut être utilisée pour les erreurs définies par l'utilisateur.
'S'il s'agit d'une erreur conservée, alors le numéro d'erreur dans le composant est cohérent avec le numéro d'erreur du traitement de la page
si numéro d'erreur <>0 alors
Response.Write "Message d'erreur" & err.number & err.Description
finir si
Réponse.Écrivez "<br>"
'S'il s'agit d'une erreur définie par l'utilisateur, elle peut être traitée séparément sur la page
obj.showerror2()
si numéro d'erreur <>0 alors
si numéro d'erreur = 600 alors
Réponse.Écrire err.number & err.Source & err.Description
finir si
finir si
%>
</CORPS>
</HTML>
Configurez le répertoire virtuel et exécutez ce fichier asp dans IE. Les résultats sont les suivants :
Le message d'erreur 11 est divisé par zéro.
600 Erreur auto-définie 600 Il s'agit d'une erreur décrivant votre propre programme.
Asp Component Beginner's Introduction and Mastery Series Part 7.
Lors de l'exécution des exemples des chapitres précédents, vous pouvez rencontrer des problèmes plus ou moins
, tels que : une fois le composant terminé. compilé, il doit être modifié, des erreurs telles que "Autorisation refusée, 'f:csdnfcom.dll'", etc.
Lorsque vous parcourez la page asp, ouvrez le gestionnaire de tâches et vous verrez un processus dllhost.exe avec le nom d'utilisateur IWAM_YANG. IWAM_YANG varie en fonction du nom de l'ordinateur.
Vous pouvez utiliser les méthodes suivantes pour résoudre
1. Redémarrez iis.
Recherchez Outils de gestion->Internet Information Services->cliquez avec le bouton droit sur l'ordinateur local au deuxième niveau de l'arborescence à gauche dans le panneau de configuration->toutes les tâches->redémarrez IIS. Cette opération prend un certain temps.
À ce stade, vous pouvez voir que le processus dllhost.exe a été fermé
2. L'inconvénient de la méthode ci-dessus est que tous les sites Web sont actuellement fermés jusqu'au redémarrage.
Existe-t-il une solution pour un seul site Web ou un seul répertoire virtuel ? Recherchez
les outils d'administration -> Internet Information Services -> Recherchez le répertoire virtuel dans lequel votre composant s'exécute dans le Panneau de configuration. ->Cliquez avec le bouton droit sur Propriétés->Dans le premier répertoire virtuel->Protection des applications->Cliquez sur Désinstaller.
À ce stade, vous pouvez voir que le processus dllhost.exe a été fermé
3. Si cela vous pose problème, terminez simplement le processus directement dans le Gestionnaire des tâches de Windows
4. La dernière méthode
consiste à rechercher les outils de gestion dans le panneau de configuration -> Services de composants -> cliquez sur Ordinateur, Poste de travail, Processus en cours -> Applications poolées hors processus IIS (2860) -> cliquez avec le bouton droit pour le fermer.
à ce moment, vous pouvez voir que le processus dllhost.exe a été fermé.