請問C#呼叫不同語言開發的其它DLL的函數時,函數的參數有二維陣列時,該如何處理?
因為我要呼叫對方DLL函數的參數中包含了一個結構(對方的DLL要求的):
例如:typedef struct _somestruct
{
unsigned char Ver[3];
unsigned char MyID[3];
}somestruct;
如果結構中的項目是一維的陣列,用這種方式定義一個結構就可以用來傳接:
public struct mystrc {
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] MyID;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] public byte[] Ver;
}
但如果今天對方DLL要求的參數中,中有不規則的陣列,例如:
typedef struct _somestruct
{
unsigned char Ver[3];
unsigned char MyID[3];
unsigned char Voice[3][5]; //不規則維度...
}mystruct;
那麼在我的C#中要如何定義才可以?
另外下列網址是微軟MSDN找到的相關文章 "陣列的預設封送處理"
http://msdn.microsoft.com/zh-tw/library/z6cfh6e6(VS.80).aspx
算是對我處理這個問題幫助相當大的文章,
但還是沒能完全解決,拜托各位有經驗的大大,能不吝指教,分享一下,感恩啊!