2010-01-27 4 views
2

J'écris un script VB dans lequel je dois appeler une fonction d'une DLL COM. La fonction que je veux utiliser est dans la structure et donc je veux créer l'objet de cette structure pour accéder à la fonction requise.Comment appeler la fonction DLL dans vbscript

par exemple. J'ai une dll 'BasicCom.dll', dans lequel

struct abc 
{ 
    bool xyz(); 
} 

Maintenant, je veux appeler xyz(). Quelqu'un at-il une idée, comment faire face à un tel appel dans le script Vb?

+1

Dans quelle langue est écrite la DLL COM, êtes-vous sûr que c'est une structure? COM n'a aucun mécanisme pour traiter une structure comme quelque chose qui peut avoir des méthodes. – AnthonyWJones

+3

Cela ne ressemble pas du tout à une fonction COM. L'appel de fonctions dans un programme C++ comme celui-ci n'est pas supporté. –

+0

Ma DLL COM est écrite en C++, dans laquelle C++ struct et méthodes sont déclarées. – amritad

Répondre

-1

Vous devez vous inscrire comme composant COM + (exécuter REGSVR32 BasicCom.dll) et faire:

Set yourClass = CreateObject("BasicCom.Abc") ''// Should be ProjectName.ClassName 
returnValue = yourClass.xyz() 
+0

Regsvr32 enregistre simplement le composant COM. COM + est quelque chose de différent qui (entre autres choses) permet à un composant COM d'être hébergé dans un autre processus. COM + n'est pas nécessaire dans ce scénario. – AnthonyWJones

0

Jetez un oeil à

VBScript CreateObject Function

La fonction CreateObject crée un objet d'un type spécifié.

Commentaire de syntaxe

CreateObject(servername.typename[,location]) 
2

Hans est exact. C'est une méthode C++ pure, pas une méthode d'une classe COM. Vous ne pouvez pas l'appeler à partir de VBScript.

Questions connexes