2010-11-25 32 views
0

J'essaie d'utiliser Windows From en tant que contrôle ActiveX dans SAP B1. À l'intérieur de ce contrôle, j'héberge le contrôle WPF. Cela fonctionne très bien sauf quand j'essaie de lancer un objet activeX sur ma classe pour que je puisse utiliser toutes les méthodes de ma classe. Mais quand j'essaye de faire cela, je reçois une exception. Qu'est-ce qui ne va pas?Problème avec le lancement de l'objet activeX sur mon objet

J'ai fait l'enregistrement et tout ça. Je peux même afficher ce contrôle dans SAP avec des données artisanales (initialisées dans le constructeur du contrôle). Bien que je ne suis pas sûr si c'est un problème plus général et pas spécifique à SAP.

Bienvenue toutes les suggestions et merci à l'avance.

Le message que je suis arrivé est: Impossible de jeter l'objet COM de type 'System .__ ComObject' type de classe 'CapacityCalendarControl.CapacityCalendar'

[Guid("9A2F1CCB-8DC0-4CE5-B3C7-403A1A8CDCE2")] 
[ProgId("kamil.calendar.control")] 
[ClassInterface(ClassInterfaceType.AutoDual)] 
[ComVisible(true)] 
public partial class CapacityCalendar : UserControl 
{ 
    //internals... 
} 
+0

Vous ne postez pas le code qui ont bombardé. –

Répondre

1

Un système .__ ComObject (une enveloppe COM) ne peut pas être jeté à une classe .NET. La façon la plus simple pour vous est d'utiliser TLBImport (outil d'importation de bibliothèques de types), je pense, si votre activeX est équipé d'un .TLB (externe ou intégré).

Voir ici pour plus: Tool for creating .NET wrappers for a COM DLL?

+0

Mais j'ai fait mon activeX à partir de l'assemblage net et je ne peux pas le convertir à l'assemblage net, du moins c'est ce que je reçois de Tlbimp. – kamilw

+0

TlbImp crée des classes .NET pour utiliser un objet COM non .NET (= Active X). Je ne comprends pas la déclaration "J'ai fait mon ActivX de l'assemblage net"? –