OVH Cloud OVH Cloud

Utilisation d'une dll VB6 sur Windows 2000 + IIS + ASP

1 réponse
Avatar
pwolf
Bonjour,

J'ai besoin d'utiliser une certaine dll codée en vb6 sur 1 serveur web
windows 2000, iis + asp. J'ai aussi créé un paquetage d'installation
de la dll.

Le problème est qu'à l'appel de la page le serveur renvoie une erreur
au niveau du Server.CreateObject (cf. code joint svp).

Faut-il définir un point d'entrée sur la dll (et comment) ?
Faut-il spécifier une classe de base ou méthode utilisée au niveau du
CreateObject ?

Merci de votre aide.

Philippe.


Ci-après les codes :

Code de la dll : (fichier Appel.cls, projet EssaiSystem.vbp)
================
Public Function AppelSystem(ByVal repertoire As String, ByVal fichier
As String, ByVal args As String)
Dim i As Integer
Dim nb_sep As Integer
Dim ch_args As String
Dim ret
Dim fso
If Len(args) > 0 Then
nb_sep = CompteCar(args, "|")
If nb_sep > 1 Then
For i = 1 To nb_sep
ch_args = ch_args & Split(args, "|")(i - 1) & ","
Next i
ch_args = Left(ch_args, Len(ch_args) - 1)
Else
ch_args = args
End If
fichier = fichier & " " & ch_args
End If
If Right(repertoire, 1) <> "\" Then
repertoire = repertoire & "\"
End If
Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FileExists(repertoire & fichier)) Then
ret = Shell(repertoire & fichier, vbHide)
Else
ret = -1
End If
Set fso = Nothing
AppelSystem = ret
End Function


Dans la page asp :
==================
dim essai
essai = Server.CreateObject("EssaiSystem.Appel")


Erreur :
========
Erreur d'exécution Microsoft VBScript error '800a01b6'

Cet objet ne gère pas cette propriété ou cette méthode

1 réponse

Avatar
Philippe
Bonjour Zoury,

Merci de ta réponse.

Apparemment l'enregistrement de la dll est correct (j'ai utilisé l'assistant
d'empaquetage) et j'utilise bien le nom du projet point le nom de la classe.

Cala vient peut-être des options de compilation du projet ou des propriétés
de la classe que je ne sais pas utiliser.

Cordialement,

Philippe.

"Zoury" a écrit dans le message de
news:%
Salut Philippe! :O)

si t'as dll est enregistrer correctement sur le serveur, tu peux déclarer


ton
objet comme suit :

'***
Dim obj
Set obj = CreateObject("NomDeLaLibrairie.NomDeClasse")
'***

par exemple pour un object Dictionary
'***
Dim dic
Set dic = CreateObject("Scripting.Dictionary")
'***

Le nom de librairie de ta dll peut-être spécifié dans la fenêtre de


propriété du
projet dans le menu Projet/Propriété [nom de ton projet], ensuite dans le


champs
nom du projet de l'onglet général.

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"Philippe" wrote in message
news:
: Bonjour,
:
: J'ai besoin d'utiliser une certaine dll codée en vb6 sur 1 serveur web
: windows 2000, iis + asp. J'ai aussi créé un paquetage d'installation
: de la dll.
:
: Le problème est qu'à l'appel de la page le serveur renvoie une erreur
: au niveau du Server.CreateObject (cf. code joint svp).
:
: Faut-il définir un point d'entrée sur la dll (et comment) ?
: Faut-il spécifier une classe de base ou méthode utilisée au niveau du
: CreateObject ?
:
: Merci de votre aide.
:
: Philippe.
:
:
: Ci-après les codes :
:
: Code de la dll : (fichier Appel.cls, projet EssaiSystem.vbp)
: =============== > : Public Function AppelSystem(ByVal repertoire As String, ByVal fichier
: As String, ByVal args As String)
: Dim i As Integer
: Dim nb_sep As Integer
: Dim ch_args As String
: Dim ret
: Dim fso
: If Len(args) > 0 Then
: nb_sep = CompteCar(args, "|")
: If nb_sep > 1 Then
: For i = 1 To nb_sep
: ch_args = ch_args & Split(args, "|")(i - 1) & ","
: Next i
: ch_args = Left(ch_args, Len(ch_args) - 1)
: Else
: ch_args = args
: End If
: fichier = fichier & " " & ch_args
: End If
: If Right(repertoire, 1) <> "" Then
: repertoire = repertoire & ""
: End If
: Set fso = CreateObject("Scripting.FileSystemObject")
: If (fso.FileExists(repertoire & fichier)) Then
: ret = Shell(repertoire & fichier, vbHide)
: Else
: ret = -1
: End If
: Set fso = Nothing
: AppelSystem = ret
: End Function
:
:
: Dans la page asp :
: ================= > : dim essai
: essai = Server.CreateObject("EssaiSystem.Appel")
:
:
: Erreur :
: ======= > : Erreur d'exécution Microsoft VBScript error '800a01b6'
:
: Cet objet ne gère pas cette propriété ou cette méthode