J'essaie d'utiliser l'API COM VirtualBox (VBoxC.dll) de C#. J'ai couruAPI COM VirtualBox à partir de C#
tlbimp VirtualBox.tlb
contre le typelib inclus dans le VirtualBox SDK. Le référencement de l'assembly de sortie se produit correctement, mais lors de l'exécution, j'obtiens un SafeArrayTypeMispatchException
("Le tableau spécifié n'était pas du type attendu") chaque fois que j'essaie d'accéder à des propriétés renvoyant des tableaux.
je peux voir, par exemple, que IVirtualBox.get_Machines()
est défini comme
[return: MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH)]
[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime), DispId(0x60020009)]
public virtual extern IMachine[] get_Machines();
Comment puis-je obtenir cet appel à Marshall correctement?
IMachine n'est pas un IDispatch. Je vais essayer le C++ en commençant par l'IDL. –