我在表示一個包含指向我的託管代碼中的短褲陣列的結構的方法時遇到了一些麻煩。該結構是這樣的:封裝一個指向類型數組的指針(託管C# - >非託管C++)
typedef struct
{
short size;
unsigned short** shortValues;
} UnmanagedStruct;
關於「shortValues
」存儲器分配非託管代碼內 - 因此,即使該字段是一個簡單的指針短值的數組中,加入額外的間接電平,使得分配的內存也被調用者(託管代碼)看到。 'size
'字段表示數組中元素的數量。我如何在託管代碼中表示這一點?
我想我只通過IntPtr
傳遞它,然後我無法弄清楚如何訪問非託管調用返回值。
該代碼看起來完全正確。謝謝dtb!在我引起你的注意的同時,我可以問另外一個問題嗎?我已經發布它在另一個線程: http://stackoverflow.com/questions/1323797/marshaling-pointer-to-an-array-of-strings – Dilip 2009-08-24 17:55:32
順便說一句:最好是更新你的問題,而不是發佈答案給你的問題與新的細節。另外,如果答案解決了您的問題,請不要忘記接受它! :) – dtb 2009-08-24 18:08:04
@dtb:我必須在這裏失明,但我該如何「接受」一個答案? – Dilip 2009-08-24 21:41:15