Wie pro MSDN in Bezug auf die Umwandlung der Typen erfolgt durch den RCW zwischen .Net-Client auf nicht verwalteten Objekten vorbei, es steht geschrieben:RCW nicht integer konvertieren, wenn sie von .Net zu COM
... Andere Typen erfordern keine Konvertierung. Zum Beispiel wird ein Standard-Wrapper immer eine 4-Byte-Ganzzahl zwischen verwaltetem und nicht verwaltetem Code übergeben, ohne den Typ zu konvertieren.
AFAIK,
- Int32 (.NET-Typ) repräsentiert eine 32-Bit-Ganzzahl mit Vorzeichen.
- integer (VBA) repräsentiert eine 16-Bit-signierte
Wenn also ein Int32 als Parameter von einem NET an einen VBA-Methode übergeben wird und keine Umwandlung durch das RCW erfolgt so, wie sich die Parameter übergeben wird?
Dank @Simon Mourier für die Erklärung. Wenn ich Sie richtig verstehe, ist es Aufgabe des Programmierers, als Parameter Int16 an eine VBA-Methode für Integer zu übergeben? – ehh
Es hängt davon ab, wie Sie die Interface-Methode definieren, aber wenn es manuell gemacht wird, dann ja, wie es in dieser Frage auf SO getan: http://StackOverflow.com/Questions/25134560/import-c-dll-in-C -sharp-how-to-convert-short-type (obwohl es nicht COM ist, ist es die gleiche Idee) –
Vielen Dank für die Klarstellung – ehh