मैं unmaged COM ऑब्जेक्ट में एक तरीका है जिसके मैं मार्शल कोशिश कर रहा हूँ है:.NET में LPSTR ** marshall कैसे करें?
STDMETHOD(SomeMethod)(LPSTR** items, INT* numOfItems) = 0;
लेकिन मैं आइटम ** LPSTR बाहर मार्शल करने के लिए सही तरीके से समझ नहीं कर सकते हैं। यह वस्तुओं की एक सूची माना जाता है। लेकिन अगर कुछ इस तरह से करने की कोशिश:
[PreserveSig]
int SomeMethod([MarshalAs(UnmanagedType.LPStr)]ref StringBuilder items, ref uint numOfItems);
मैं केवल बहुत पहले आइटम और कुछ नहीं के पहले पत्र मिलता है।
मैं एलपीआरटी ** परिवर्तनीय तरीके से मार्शल कैसे कर सकता हूं?
यह और अधिक की तरह 'StringBuilder []' होना चाहिए। आप उस पैरामीटर को मैन्युअल रूप से मार्शल कर सकते हैं, उदाहरण देखें [यह प्रश्न] (http://stackoverflow.com/q/16857034/1997232)। – Sinatr
@Sinatr, मैंने स्ट्रिंगबिल्डर [] का उपयोग करने की कोशिश की लेकिन इस मामले में मुझे यह त्रुटि मिल रही है: "प्रबंधित डिबगिंग सहायक 'ContextSwitchDeadlock' हुआ"। हालांकि आपके द्वारा प्रदान किए गए लिंक पर एक नज़र डालेंगे। – user208478
मार्शलिंग दिशा क्या है? अंदर, बाहर, दोनों? – arbiter