我使用已經方法限定爲API如下:當我通過pinvoke獲得第一個元素時,如何獲得數組中的下一個項目?
[DllImport("icsneo40.dll")]
public static extern Int32 icsneoGetMessages(Int32 hObject, ref icsSpyMessage pMsg, ref Int32 pNumberOfMessages, ref Int32 pNumberOfErrors);
與icsSpyMessage
參數描述爲:
PMSG [OUT]
這是一個陣列的所述第一元素的地址 icsSpyMessage結構。該陣列將加載由硬件收到的 消息。此數組必須大小,以適合 20000 icsSpyMessage結構
我的問題是如何訪問數組中的其他元素,當所有我是第一個元素?
這是不正確。它不應該使用' out'參數,應該被刪除,相反你需要'[out]'屬性,看看我的答案,並且在發生時不需要'MarshalAs',因爲默認行爲是編組整個數組。由於性能原因,SizeParamIndex可能很有價值。 –