J'ai un module excel vba appelant une DLL C# COM. Parfois, j'ai ce comportement étrange que j'espère que quelqu'un pourrait expliquer. J'obtiens une incompatibilité de type lorsque je parcours le débogueur dans VBA, lorsque j'initialise un objet COM comme suit.Comportement COM étrange dans VBA
If (IsEmpty(cm)) Then
Set cm = CreateObject("aimd.CMAdaptor")
End If
Maintenant, je peux ajouter un point d'arrêt dans la VBA et ajoutez une montre à la variable cm, et voir le type ne correspond pas à ce que j'instancié. En fait, le type est pour une propriété à l'intérieur de l'objet que j'essaie de créer ... l'objet pointé a été clairement créé par mon objet "aimd.CMAdaptor" que j'ai instancié, je n'ai tout simplement pas l'objet racine spécifiez, seulement l'enfant. Comme il s'agit d'un objet COM, je me demande si mes mises à jour pourraient utiliser des données de regasm incompatibles ou quelque chose de bizarre qui les amène à chercher l'objet au mauvais endroit, ou quelque chose comme ça. Je le reconstruis constamment pour le débogage, et je l'ajoute à un installateur qui appelle regasm comme une action de construction.
Pensées?