在使用DllImport屬性調用外部函數時,可以通過使用try-catch語句來捕獲可能拋出的異常,進行錯誤處理。以下是一個簡單的示例:
using System;
using System.Runtime.InteropServices;
class Program
{
[DllImport("user32.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
static void Main()
{
try
{
IntPtr hWnd = FindWindow(null, "Untitled - Notepad");
if (hWnd == IntPtr.Zero)
{
throw new Exception("Window not found");
}
else
{
Console.WriteLine("Window handle: " + hWnd);
}
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
}
在上面的示例中,通過調用FindWindow函數查找Notepad窗口的句柄,并通過try-catch語句捕獲可能的異常。如果函數返回IntPtr.Zero(即窗口未找到),則拋出一個自定義的異常,并在catch塊中打印錯誤消息。這樣可以更好地處理外部函數調用可能出現的錯誤情況。