कलाकारों (int) myobject
को सिर्फ काम करना चाहिए ।
यदि वह आपको एक अमान्य कास्ट अपवाद देता है, तो यह संभवतः इसलिए है क्योंकि वेरिएंट प्रकार VT_I4 नहीं है। मेरी शर्त यह है कि VT_I4 के साथ एक संस्करण को बॉक्सिंग इंट में बदल दिया जाता है, VT_I2 को बॉक्सिंग शॉर्ट में बदल दिया जाता है, आदि।
जब एक बॉक्सिंग वैल्यू टाइप पर कास्ट किया जाता है, तो इसे केवल बॉक्स वाले टाइप के लिए ही मान्य किया जाता है। दुश्मन उदाहरण, अगर लौटा हुआ संस्करण वास्तव में VT_I2 है तो (int) (short) myObject
काम करना चाहिए।
सबसे आसान तरीका यह पता लगाना है कि लौटी हुई वस्तु का निरीक्षण करें और डीबगर में इसके प्रकार पर एक नज़र डालें। यह भी सुनिश्चित करें कि इंटरोप असेंबली में आपके पास चिह्नित मूल्य हैMarshalAs(UnmanagedType.Struct)