J'ai déclaré une classe COM visible en C#. Le code est le suivant:C# Classe COM - DISP_E_UNKNOWNNAME
[ComVisible(true)]
public class AComVisibleClass : TheParentClass
{
public bool SomeFunc(string id)
{
return true;
}
}
Cette classe est instanciée par une classe d'usine, également accessible COM par.
Mais si j'essaie d'accéder à un fichier de script VB, une exception DISP_E_UNKNOWNNAME
est levée.
Ceci est une nouvelle classe sur une bibliothèque préexistante que nous avons ici au travail. Toutes les autres classes sont accessibles via COM. La bibliothèque entière est compilée dans un seul fichier d'assemblage. J'ai enregistré le nouvel assembly en utilisant regasm
, mais j'ai toujours cette exception.
J'ai essayé de déboguer l'appel COM en utilisant VS2008. La classe d'usine semble être en mesure d'instancier le AComVisibleClass
. L'exception susmentionnée est levée uniquement lorsque l'usine essaie d'exécuter SomeFunc
.
Je sais que cela peut sembler un peu (?) Peu vague, mais je ne peux pas exposer le vrai code ici. Si quelqu'un a besoin de plus d'informations, s'il vous plaît demandez-moi.
Pouvez-vous ajouter votre code VBScript (juste assez pour voir à quoi ressemble l'appel)? –
Le problème est dans le code VBScript. Vous n'avez pas publié ce code. –