2009-10-08 12 views
3

En utilisant VS2008 .NET 3.5 SP1.NET 3.5 ActiveX dll InteropServices.COMException

Je suis en train d'utiliser un dll ActiveX dans mon C# projet d'application console et je reçois cette exception d'exécution:

System.Runtime.InteropServices.COMException (0x800702E4): Retrieving the COM class factory for component with CLSID {4E58088E-7275-4EAA-8958-A9CCC971DDE9} failed due to the following error: 800702e4. 

Comment puis-je trouver une solution à ce problème?

J'ai utilisé regasm.exe pour enregistrer dans DLL précédemment et il s'est enregistré avec succès.

nom

de DLL est interop.sterling.dll

code simple:

using SterlingLib; 

    public class OrderPlacer 
    { 
    private void SendOrder() 
     { 
      var order = new SterlingLib.STIOrder(); 
     } 
} 

J'ai ajouté la référence à cette DLL en naviguant à et l'ajouter comme référence - placer ensuite dans le dossier /bin/debug

en utilisant la réflexion:

SterlingLib.STIOrderClass is a class whose base class is System.__ComObject 
    It implements the following interfaces 
     SterlingLib.ISTIOrder 
     SterlingLib.STIOrder 

SterlingLib.STIOrder is an interface 

Je cours Vista donc je pense que cela peut être un problème UAC ne permettant pas les droits complets contrairement à si je courais XP.

+0

Pourriez-vous ajouter des détails sur le composant que vous utilisez et éventuellement ajouter le code qui provoque l'erreur? –

+0

regasm.exe est d'enregistrer des assemblages .net comme com, vouliez-vous dire que vous avez utilisé regsvr32? –

+0

J'ai essayé regsvr32 et il est retourné avec le module de message a été chargé mais le point d'entrée DLLRegisterServer n'a pas été trouvé. Assurez-vous que la DLL est une DLL valide – chrisg

Répondre

6

0x800702e4 suggère que le processus doit être exécuté avec des privilèges élevés.

+1

merci - comment avez-vous trouvé cela? – chrisg

+0

Voici une liste: http://blogs.msdn.com/joshpoley/pages/errors-007-facility-win32.aspx – Christian