Problème d'Instanciation d'une Classe (VB6 DLL pour ASP3) dans une autre classe

cs_jl75 Messages postés 15 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 24 mars 2006 - 12 déc. 2005 à 17:56
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 14 déc. 2005 à 15:28
Bonjour est-ce que quelqu'un peut m'aider à comrendre ce qui ne gaze pas dans mon code ?

J'a ecrit une petite DLL en VB6 pour ASP3 qui comporte plusieurs classes. Lorque j'instancie chaque classes individuellement à partir de mes pages ASP ça marche très bien mais je n'arrive à utiliser les objets des classes dont j'ai besoin à partir d'une de ces classes dans mon code vb6. Rermarquez c'est peut-être pas possible pour ce type de composant mais j'aimerais qu'un "expert" puisse me le confirmer (je galère un max et j'ai mal à la tête !!!)
Merci par avance
Jluc

Pour comprendre aisément mon problème "NouvelleInstance de UneClasseDeMaDLL" est à regarder dans le code ci-dessous

Option Explicit

Dim DataConn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim Session As Session
Dim Application As Application
Dim Request As Request
Dim Response As Response
Dim Server As Server
Dim NouvelleInstance As New UneClasseDeMaDLL

Private Sub OnStartPage(sc As ScriptingContext)
Set Session = sc.Session
Set Application = sc.Application
Set Request = sc.Request
Set Response = sc.Response
Set Server = sc.Server
Set DataConn = Server.CreateObject("ADODB.Connection")

DataConn.Open Application("MaBaseDeDonnees")

End Sub

Private Sub OnEndPage()
Set Session = Nothing
Set Application = Nothing
Set Request = Nothing
Set Response = Nothing
Set Server = Nothing
DataConn.Close
Set DataConn = Nothing
End Sub

Public Sub Execution()
Response.Write "bla bla" & MonCodeVB & "etc. etc."
Set rs = DataConn.Execute("select MonChamp from Matable")
Do While Not rs.EOF
Response.Write rs("MonChamp") & "
" & vbCrLf
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
If blablaCode Then
NouvelleInstance.Execution
End If
End Sub

6 réponses

cs_jl75 Messages postés 15 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 24 mars 2006
12 déc. 2005 à 18:03
J'ai oublié de mentionner l'erreur retournée, la voici:

(0x800A005B)
Object variable or With block variable not set

Jluc
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
12 déc. 2005 à 19:56
Une classe dans une classe ?
Ca devrait pas poser de problème...

Je connais pas ta syntaxe de création d'objet, mais il en existe beaucoup. La meilleur que je connaisse, c'est de pas en mettre !

Pour tout ce qu'il faut savoir sur les dlls :
http://vbfrance.com/code.aspx?ID=32111

Sinon, si tu as deux classes dans la même dll, tu peut sûrement appeler diectement les méthodes d'une classe à partir de l'autre, sans création d'objet.
0
cs_jl75 Messages postés 15 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 24 mars 2006
12 déc. 2005 à 23:09
Merci de ta réponse, je sais bien. j'y arrive sans problème dans d'autres applications les classes de ma dll ressemblent étrangement à des "webclass" et je me demande si c'est bien possible de les imbriquer !
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
12 déc. 2005 à 23:35
bah c'est vrai que VB pour la prog orientée objet, c'est un peu pas bien du tout, mais je vais essayer ton truc (Une classe qui appel une classe dans une dll, si j'ai compris)

Tu as mis les classes en vbmultiuse ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jl75 Messages postés 15 Date d'inscription lundi 15 septembre 2003 Statut Membre Dernière intervention 24 mars 2006
12 déc. 2005 à 23:53
Oui pour les dll specifiques à l'asp je ne crois pas qu'il y ait d'autre choix possible que le vbmultiuse

jluc
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
14 déc. 2005 à 15:28
J'ai testé ce code avec succès :

Le code de l'exe ou est référencée la dll :

Private Sub Command1_Click()
Call appel
End Sub

Le code de la classe EX_1 de la dll EX_2Classes :

Public Sub Appel()
Dim obj As New EX_2
Call obj.allo
End Sub

Le code de la classe EX_2 de la dll EX_2Classes :

Public Sub allo()
MsgBox "allo"
End Sub
0
Rejoignez-nous