我正在Ubuntu上将X11-api与Mono和C#结合使用。当我想知道活动窗口时,我有一个SIGSEGV。
导入:
[DllImport("libX11")]
public static extern void XGetInputFocus(IntPtr display, IntPtr focus_return, int revert_to_return);
[DllImport("libX11")]
public static extern IntPtr XOpenDisplay(string display_name);
并使用:
IntPtr rootWind = XOpenDisplay(null);
IntPtr wind;
int ret = 0;
XGetInputFocus(rootWind, wind, ret); //SIGSEGV there
我尝试使用指针,引用等,但是有一个结果。其他api-functions正常工作。怎么了?
尝试一下:
[DllImport("libX11")]
public static extern void XGetInputFocus(IntPtr display, ref IntPtr focus_return, ref int revert_to_return);
IntPtr rootWind = XOpenDisplay(null);
IntPtr wind;
int ret = 0;
XGetInputFocus(rootWind, ref wind, ref ret);