zoukankan      html  css  js  c++  java
  • C# 搞桌面UI适配国产麒麟Linux+龙芯遇到的一些坑

    由于一些国企有国产化的需求,所以搞了C#适配银河麒麟,适配了X64和龙芯MIPS版本

    1、 在银河麒麟的龙芯版本中 pipe2 不能使用,x64版本上却可以用。  

    pipe2 用来做自定义消息的,搞UI是需要主线程消息循环,另外还需要自定义消息来实现跨线程来操作UI,就是Winform和WPF里的Invoke和BeginInvoke,其他线程发送自定义消息到主线程,主线程接收之后,就执行相应的UI操作。如果用XSendEvent来实现,延迟很严重。后来参考Mono里的实现,把pipe2改成用Socket就行了。

    2、在银河麒麟的龙芯版本中出现任务栏图标闪烁,无限激活获取焦点,x64版本却没问题。其实就是FocusIn 消息里,如果再调用XRaiseWindow(Display, Handle);XSetInputFocus(Display, Handle, 0, IntPtr.Zero);就会出现这种死循环。后来加个判断就好了。

    3、这次是银河麒麟的x64版本的文件浏览对话框不稳定,对话框是调用Gtk来实现的,只能重写个文件对话框了,不依赖GTK的。

    运行效果,CPF做的IM通讯软件

    签名:<-CPF C# 跨平台桌面UI框架,支持Windows,Mac,Linux,包括XP,国产麒麟Linux等等->
  • 相关阅读:
    Python基础-博客
    已开发程序查询
    新语法
    html基础
    python操作excel
    Selenium
    练习2---(request,ajax爬取头条数据)
    练习1---request+正则(猫眼电影)
    框架---scrapy(基本用法)
    框架---Scrapy (框架安装)
  • 原文地址:https://www.cnblogs.com/dskin/p/14779155.html
Copyright © 2011-2022 走看看