Question

Je dois créer un SafeArray pour passer à une méthode COM.
Comment créer / maintenir / détruire un SafeArray en C #?

Je n'ai jamais rencontré SafeArrays auparavant et je n'ai pas trouvé grand-chose avec une recherche rapide sur Google, donc toute aide est très appréciée.

MODIFIER: Exemple de code ajouté:

La signature de la méthode COM

[id(0x000000d5)]
HRESULT GetTags(
                [in] SAFEARRAY(long) buffer, 
                [out, retval] long* retval);

La méthode d'interopérabilité générée en C #

int GetTags(System.Array buffer)
    Member of Cwise.IUser

Dans ce cas, dois-je créer un SafeArray ou puis-je simplement passer un .Net Array normal à la méthode COM GetTags?

Était-ce utile?

La solution

utilisez un tel code pour cela

Array ar = Array.CreateInstance(typeof (int), 500);

au lieu de typeof(int), utilisez votre propre type de données, votre objet COM doit vous dire quel type attend.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top