2012-10-24 32 views
0

這個消息出現在C#代碼之後寫入保護內存是這樣試圖讀取或從DLL 代碼調用函數後,外部函數

function(); 
int i = 0; 
在第二行

它說,有未處理的異常鍵入「System.AccessViolationException」...嘗試讀取或寫入受保護的內存

+2

什麼是'function()'?它是如何定義的?如果是「外部」,實際執行是否與聲明一致?特別是返回類型('void','int'等)是否正確?這個消息通常意味着:你已經失去了堆棧或類似的地位。這是一個很好的方法:當你承諾不會或者在你說的時候不會返回一個值的時候,'extern'方法會返回一個值。 –

回答

1

如果函數是外部函數,則聲明出現問題。 發生這種情況是因爲您的返回值或參數類型的大小不正確,並且數據從堆棧中「彈出」時發生錯誤