0
我想知道如何將字符串類型編組爲BSTR *類型。 只是闡述,C++的結構如下:如何定義和編組BSTR *類型
struct MyStruct
{
BSTR* string;
int a;
}
我需要定義在C#中端建立一個新sturct,我想這兩個字符串[]和IntPtr的[],但沒有拿出一個成功。
感謝您的幫助!
編輯: C++結構:
struct HTTPTEXTRENDERERFILTERINFO {
enum { UTC, GMT } eTimestamp;
BOOL bEnableCCIngest;
LONG lQueueSizeTreshold;
LONG lSendTimeTreshold;
BYTE btBroadcastUrlCount;
BSTR* pbstrBroadcastUrls;
LONG lInputPinsNum;
};
和函數原型:
HRESULT HTTPTextRendererFilter::SetConfig(IN const HTTPTEXTRENDERERFILTERINFO& Config)
C#結構:
[StructLayout(LayoutKind.Sequential,字符集= CharSet.Unicode )] public struct HttpTextRenderFilterInfo { public enum TimestampType:int {UTC,GMT};
public TimestampType Timestamp; public int EnableCCIngest; public int QueueSizeTreshold; public int SendTimeTreshold; public byte BroadcastUrlCount; [MarshalAs(UnmanagedType.BStr)] public string pbstrBroadcastUrls; public int lInputPinsNum; };
原型:
[PreserveSig]
int SetConfig([In] ref HttpTextRenderFilterInfo config);
感謝您的答覆,有什麼不同,我應該做的,而分配新值的字符串? Marshal.stringToPtr等等..? – 2012-08-15 06:30:55
沒有特別要求。 – logicnp 2012-08-15 06:32:52
從c#轉發到C++端的整個結構已損壞,沒有有意義的值,我將編輯我的原始帖子以顯示案例 – 2012-08-15 06:35:25