<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xxNull的专栏]]></title><description><![CDATA[机遇是从耐心中产生的，越有耐心，就越有机遇]]></description><link>https://blog.csdn.net/xxNull</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; xxNull]]></copyright><item><title><![CDATA[提交库到pypi]]></title><link>https://blog.csdn.net/xxNull/article/details/133499923</link><guid>https://blog.csdn.net/xxNull/article/details/133499923</guid><author>xxNull</author><pubDate>Mon, 02 Oct 2023 20:25:57 +0800</pubDate><description><![CDATA[LICENSE授权文件。可以从挑选一个你喜欢的授权。为包的源码目录注意：改成你自己包的名称。README.md在这里写上库的详细描述。通常，写一下基本介绍，如何使用等等。]]></description><category></category></item><item><title><![CDATA[GTK+helloword详解]]></title><link>https://blog.csdn.net/xxNull/article/details/125577771</link><guid>https://blog.csdn.net/xxNull/article/details/125577771</guid><author>xxNull</author><pubDate>Sat, 02 Jul 2022 21:12:57 +0800</pubDate><description><![CDATA[麻雀虽小五脏俱全，一个简单的helloword也包含的很多细节，通过分析这个简单的程序源码，可以了解到GTK+图形程序的基本结构以及诸多背景知识。]]></description><category></category></item><item><title><![CDATA[Windows下搭建GTK3开发环境]]></title><link>https://blog.csdn.net/xxNull/article/details/125550763</link><guid>https://blog.csdn.net/xxNull/article/details/125550763</guid><author>xxNull</author><pubDate>Fri, 01 Jul 2022 00:28:27 +0800</pubDate><description><![CDATA[本文记录了如何在Windows下一步一步搭建GTK3的开发环境。]]></description><category></category></item><item><title><![CDATA[Linux下Vim]]></title><link>https://blog.csdn.net/xxNull/article/details/78674363</link><guid>https://blog.csdn.net/xxNull/article/details/78674363</guid><author>xxNull</author><pubDate>Thu, 30 Nov 2017 11:41:33 +0800</pubDate><description><![CDATA[安装见： 
https://www.cnblogs.com/highway-9/p/5984285.html也可以直接搜索vimplus。真心强大。]]></description><category></category></item><item><title><![CDATA[树莓派之SSH连接经验]]></title><link>https://blog.csdn.net/xxNull/article/details/78280581</link><guid>https://blog.csdn.net/xxNull/article/details/78280581</guid><author>xxNull</author><pubDate>Thu, 19 Oct 2017 09:41:49 +0800</pubDate><description><![CDATA[打开SSH服务
执行raspi-config
sudo raspi-config
选择InterfacingOptions选项，回车 选择SSH，回车 Windows下客户端推荐使用putty这个免费开源的SSH客户端。下载地址 
   在红框处填入树莓派的IP地址，点击右下角的Open即可。 
不过，putty的默认配置并非最优，需要做以下修改： 
1. 解决无法使用小键盘的问题 
 
2. 自动]]></description><category></category></item><item><title><![CDATA[10、Lua使用C++中的类——调用类方法并访问类变量]]></title><link>https://blog.csdn.net/xxNull/article/details/78214301</link><guid>https://blog.csdn.net/xxNull/article/details/78214301</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:12:56 +0800</pubDate><description><![CDATA[在上篇文章中我讲到如何在Lua中调用C++的类方法。但是，并没有讲如何调用类变量。其实，有两种方法访问类变量，一个中方法是直接写一个函数去访问，这个没啥好说的，但是相对来说比较麻烦。还有没有更好的办法呢？其实，是有的。那就是借助__index和__newindex这两个元方法来实现。 
在上篇文章中，我们把类的__index设置成的元表自己。也就是说是用lua自身默认的机制去访问Table中]]></description><category></category></item><item><title><![CDATA[9、Lua使用C++中的类——调用方法]]></title><link>https://blog.csdn.net/xxNull/article/details/78214290</link><guid>https://blog.csdn.net/xxNull/article/details/78214290</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:12:19 +0800</pubDate><description><![CDATA[背景知识本以为在Lua中使用C++的类一件非常复杂的事情。毕竟C++的类与Lua有那么多的不同。但是，困难都是纸老虎，只要想办法问题很容易就解决了。 
首先，我们要搞明白C++中类和对象的概念。这个概念想要表述清楚是很难的。但是，下面的表达式却道出了类和对象的本质： 类   = 公共数据 + 公共方法  
对象 = 私有数据 + 类  
其中，类中的公共方法又分为与对象相关的]]></description><category></category></item><item><title><![CDATA[8、Lua中调用C++函数]]></title><link>https://blog.csdn.net/xxNull/article/details/78214283</link><guid>https://blog.csdn.net/xxNull/article/details/78214283</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:11:41 +0800</pubDate><description><![CDATA[来往来往，有来有往才能叫做来往。既然C/C++和lua是好亲戚，那就会有来有往。之前，我们一直在讨论在C/C++中如何使用Lua提供的变量和函数。从这篇文章开始，咱们来讨论一下如何在Lua中使用C/C++提供的变量、函数甚至类。 
当然，我们还是假设lua是嵌入C/C++程序里面的。所以，使用lua依然是为了扩展C/C++。这个目的一定要先明确了。接下来的事情就比较容易了。 
既然，]]></description><category></category></item><item><title><![CDATA[7、C++处理Lua中的存在嵌套（循环）的Table]]></title><link>https://blog.csdn.net/xxNull/article/details/78214279</link><guid>https://blog.csdn.net/xxNull/article/details/78214279</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:11:00 +0800</pubDate><description><![CDATA[我一直在回避一个事情，那就是对嵌套Table的处理。例如在Lua中有如下定义：luat_Nest= {a=123, b=456, c={1,2,3}}其中，成员C就是嵌套的。在C/C++中如何处理呢？其实，对于这种仅仅嵌套一层的表还是比较容易处理的。下面的代码就可以：代码NestTable.cpp #include static void ReadNestTable(lua]]></description><category></category></item><item><title><![CDATA[6、C++修改Lua中Table的内容]]></title><link>https://blog.csdn.net/xxNull/article/details/78214268</link><guid>https://blog.csdn.net/xxNull/article/details/78214268</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:10:13 +0800</pubDate><description><![CDATA[在C/C++中修改Table和读取Table差别不大。也是非常简单。还是直接上代码：代码WriteLuaTable.lualuat_Test1={a=123, b=456, c=789}
luat_Test2={123, 456, 789}WriteLuaTable.cpp#include static void WriteTableFromKey(lua_State *L, co]]></description><category></category></item><item><title><![CDATA[5、C++读取Lua中Table的内容]]></title><link>https://blog.csdn.net/xxNull/article/details/78214259</link><guid>https://blog.csdn.net/xxNull/article/details/78214259</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:09:36 +0800</pubDate><description><![CDATA[背景知识首先，我们来简单了解一下lua中的Table。Table是lua中唯一内置的数据结构类型。也就是说，它没有内置list、array、map、set等等数据结构类型。在lua里面那些数据类型都是通过Table来实现的。在lua中的，Table是非常强大和重要的。当我们需要将lua嵌入到应用程序里面的时候，不可避免的需要操作Table。本文就来讨论一下如何在C语言中读取Lua中Table]]></description><category></category></item><item><title><![CDATA[4、C++程序读取Lua的Table——2]]></title><link>https://blog.csdn.net/xxNull/article/details/78214248</link><guid>https://blog.csdn.net/xxNull/article/details/78214248</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:08:51 +0800</pubDate><description><![CDATA[在Lua中存在两种访问Table成员的方法。一种是Table.ItemNamed，这个我们在《C程序操作Lua的Table——1》中介绍过了。下来我们来介绍另一种访问Table成员的方法——Table[index]。 
也简单，废话少说，上代码。代码LuaTable2.lua luat_Test = {123, 456}LuaTable2.cpp#include 
int]]></description><category></category></item><item><title><![CDATA[3、C++程序读取Lua的Table——1]]></title><link>https://blog.csdn.net/xxNull/article/details/78214239</link><guid>https://blog.csdn.net/xxNull/article/details/78214239</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:08:11 +0800</pubDate><description><![CDATA[Table是Lua里面特有的数据结构。要想在C语言中访问这种数据结构需要使用lua提供的一系列函数才行。其实，很简单，仅仅涉及到几个小函数。废话少说，上代码。代码LuaTable.lua luat_Test={a=123, b=456,c=789}LuaTable.cpp #include <lua.hpp>
// 获取Table的Item
static void GetTableItem(lua_]]></description><category></category></item><item><title><![CDATA[2、C++程序中调用Lua函数]]></title><link>https://blog.csdn.net/xxNull/article/details/78214222</link><guid>https://blog.csdn.net/xxNull/article/details/78214222</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:07:23 +0800</pubDate><description><![CDATA[还是很简单，直接上源代码。代码CallLuaFunction.lua function luaf_Add(x, y)
    print("luaf_Add: x=" .. x .. ", y=" .. y .. ", x+y=" .. x+y)
    return x + y
endCallLuaFunction.cpp#include 
int main (void)
{]]></description><category></category></item><item><title><![CDATA[C++调用lua]]></title><link>https://blog.csdn.net/xxNull/article/details/78214203</link><guid>https://blog.csdn.net/xxNull/article/details/78214203</guid><author>xxNull</author><pubDate>Thu, 12 Oct 2017 14:06:07 +0800</pubDate><description><![CDATA[代码很简单，直接上代码：  simple.lua print("hello word")simple.cpp#include 
int main (void)
{
    lua_State *L = lua_open();        // 打开一个lua状态机
    luaopen_base(L);                      // 加载基本的lua库]]></description><category></category></item><item><title><![CDATA[6.我是输入法]]></title><link>https://blog.csdn.net/xxNull/article/details/78190347</link><guid>https://blog.csdn.net/xxNull/article/details/78190347</guid><author>xxNull</author><pubDate>Tue, 10 Oct 2017 11:01:58 +0800</pubDate><description><![CDATA[// 告诉系统，我是输入法
Bool InitXIM (Window im_window)
{
    XIMStyles      *input_styles;
    XIMTriggerKeys *on_keys;
    XIMEncodings   *encodings;
    char           *p, *imname;    // 获取环境变亮XMODIFIERS的值]]></description><category></category></item><item><title><![CDATA[5.界面的处理]]></title><link>https://blog.csdn.net/xxNull/article/details/78190326</link><guid>https://blog.csdn.net/xxNull/article/details/78190326</guid><author>xxNull</author><pubDate>Tue, 10 Oct 2017 11:00:45 +0800</pubDate><description><![CDATA[​   fcitx是使用xlib写的界面。我们知道，xlib在linux下是最底层的图形库。QT和GTK都是基于xlib写的。所以，理论上讲，fcitx完全可以在没有QT和GTK的情况下运行。但是，也正是这个原因，fcitx的界面非常的简单。连基本的配置界面都没有。从程序的易用性方面讲，有一个配置窗口是非常合理而且合情的。但是，直接使用xlib处理界面实在不是太好的主意。尤其是用它来处理复杂一些的界]]></description><category></category></item><item><title><![CDATA[3.LoadConfig及LoadProfile函数]]></title><link>https://blog.csdn.net/xxNull/article/details/78190261</link><guid>https://blog.csdn.net/xxNull/article/details/78190261</guid><author>xxNull</author><pubDate>Tue, 10 Oct 2017 10:56:24 +0800</pubDate><description><![CDATA[一、读取配置文件/*
 * 读取用户的配置文件
 */
void LoadConfig (Bool bMode)
{
    FILE    *fp;
    char    buf[PATH_MAX], *pbuf, *pbuf1;
    Bool    bFromUser = True;// 用以标识配置文件是用户家目录下的，还是从安装目录下拷贝过来的。
    int     group_i]]></description><category></category></item><item><title><![CDATA[2.main函数]]></title><link>https://blog.csdn.net/xxNull/article/details/78190192</link><guid>https://blog.csdn.net/xxNull/article/details/78190192</guid><author>xxNull</author><pubDate>Tue, 10 Oct 2017 10:51:54 +0800</pubDate><description><![CDATA[int main (int argc, char *argv[])
{
    XEvent          event;    // 见解说1
    int             c;        //    用于保存用户输入的参数
    Bool            bBackground = True;// 见解说2    // 解析命令行参数，见解说2、3
    while((]]></description><category></category></item><item><title><![CDATA[1.源码中文件用途说明]]></title><link>https://blog.csdn.net/xxNull/article/details/78190018</link><guid>https://blog.csdn.net/xxNull/article/details/78190018</guid><author>xxNull</author><pubDate>Tue, 10 Oct 2017 10:42:46 +0800</pubDate><description><![CDATA[今天从http://fcitx.net上面找到了源代码各个文件的说明，很不全。以后有时间一点一点的填补吧。转载如下：  描述 fcitx 源码文件的用处。AutoEng.h/AutoEng.c
自动切换到英文输入状态。void LoadAutoEng (void) 
从 ~/.fcitx/AutoEng.dat （如果不存在，则从 /usr/local/share/fcitx/data/AutoEn]]></description><category></category></item></channel></rss>