mirror of
				https://gitee.com/csharpui/CPF.git
				synced 2025-11-01 00:46:56 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| 
 | |
| namespace CPF.Linux
 | |
| {
 | |
|     static class XError
 | |
|     {
 | |
|         private static readonly XErrorHandler s_errorHandlerDelegate = Handler;
 | |
|         public static XErrorEvent LastError;
 | |
|         static int Handler(IntPtr display, ref XErrorEvent error)
 | |
|         {
 | |
|             LastError = error;
 | |
|             //StringBuilder stringBuilder = new StringBuilder(100);
 | |
|             //XLib.XGetErrorText(error.display, error.error_code, stringBuilder, stringBuilder.Length);
 | |
|             //Console.WriteLine("异常:" + stringBuilder.ToString() + " " + error.request_code + ":" + error.error_code);
 | |
|             return 0;
 | |
|         }
 | |
| 
 | |
|         public static void ThrowLastError(string desc)
 | |
|         {
 | |
|             var err = LastError;
 | |
|             LastError = new XErrorEvent();
 | |
|             if (err.error_code == 0)
 | |
|                 throw new Exception(desc);
 | |
|             throw new Exception(desc + ": " + err.error_code);
 | |
| 
 | |
|         }
 | |
| 
 | |
|         public static void Init()
 | |
|         {
 | |
|             XLib.XSetErrorHandler(s_errorHandlerDelegate);
 | |
|         }
 | |
|     }
 | |
| }
 | 
