Comme par MSDN, en ce qui concerne la conversion des types effectuées par le RCW entre le client .Net aux objets non gérés, il est écrit:RCW ne convertit pas entier lors du passage de .Net à COM
... Autre les types ne nécessitent aucune conversion. Par exemple, un encapsuleur standard transmettra toujours un entier de 4 octets entre le code managé et non managé sans convertir le type.
AFAIK,
- Int32 (type Net) représente un entier signé 32 bits. entier
- (VBA) représente un 16 bits signé
Donc, si un Int32 est passé comme paramètre d'un .Net à une méthode VBA et aucune conversion est effectuée par le RCW alors comment le paramètre est passé?
Merci @Simon Mourier pour l'explication. Si je vous comprends bien, c'est la responsabilité du programmeur de passer en paramètre un Int16 à une méthode VBA pour un entier? – ehh
Cela dépend de la façon dont vous définissez la méthode d'interface, mais si c'est fait manuellement, alors oui, comme ce qui est fait dans cette question sur SO: http://stackoverflow.com/questions/25134560/import-c-dll-in-c -sharp-how-to-convert-short-type (bien que ce ne soit pas COM c'est la même idée) –
Merci pour la clarification – ehh