Ben Marshall'a çalışıyorum unmaged COM nesnesi bir yöntemi vardır:.NET'te LPSTR ** nasıl sıralanır?
STDMETHOD(SomeMethod)(LPSTR** items, INT* numOfItems) = 0;
Ama ** öğeleri LPSTR dışarı sıralamakta doğru şekilde anlamaya olamaz. Öğelerin bir listesi olması gerekiyordu. Böyle bir şey yapmak için denemek Ancak eğer:
[PreserveSig]
int SomeMethod([MarshalAs(UnmanagedType.LPStr)]ref StringBuilder items, ref uint numOfItems);
Sadece ilk öğe, başka bir şey ilk mektup.
LPSTR ** değişkenini doğru şekilde nasıl dizebilirim?
Bu daha 'StringBuilder []' gibi olmalıdır. Bu parametreyi manuel olarak marşlatabilirsiniz, bkz. E.g [bu soru] (http://stackoverflow.com/q/16857034/1997232). – Sinatr
@Sinatr, StringBuilder [] kullanmayı denedim ancak bu durumda şu hatayı alıyorum: "Managed Debugging Assistant 'ContextSwitchDeadlock' oluştu". Sağladığınız bağlantıya bir göz atın. – user208478
Marshalling yönü nedir? In, Out, İkisi de mi? – arbiter