抓住我的GetWindowText時我得到拋出內部異常下面的錯誤運行下面的代碼:GetWindowText函數()拋出的錯誤,而不是由try/catch語句
{「試圖讀取或寫入保護內存。這通常是指示其他內存已損壞「}
[DllImport("user32.dll", EntryPoint = "GetWindowTextLength", SetLastError = true)]
internal static extern int GetWindowTextLength(IntPtr hwnd);
[DllImport("user32.dll", EntryPoint = "GetWindowText", SetLastError = true)]
internal static extern int GetWindowText(IntPtr hwnd, ref StringBuilder wndTxt, int MaxCount);
try{
int strLength = NativeMethods.GetWindowTextLength(wndHandle);
var wndStr = new StringBuilder(strLength);
GetWindowText(wndHandle, ref wndStr, wndStr.Capacity);
}
catch(Exception e){ LogError(e) }
我有2個問題:
爲什麼錯誤不是由嘗試捕捉抓?
任何想法,當它擊中這種類型的錯誤比使用try/catch語句
乾杯
不應該趕上(例外五)是趕上(例外五)? – hatchet
是的,只是在問題中的錯字。 –
你可以試試GetWindowTExt(wndHandle,wndStr,wndStr.Capacity)嗎?另外,是否有可能NativeMethods.GetWindowTextLength(wndHandle)是拋出異常的東西? – hatchet