用C语言在Linux下获取鼠标光标的相对位置 2017年02月05日 20 阅读 用C语言在Linux下获取鼠标光标的相对位置代码分享:#include<stdio.h> #include<stdlib.h> #include<linux/input.h> #include<fcntl.h> #include<sys/time.h> #include<sys/types.h> #include<sys/stat.h> #include<unistd...
Linux下的getch()函数的改进版 2017年02月05日 21 阅读 getch()函数源码如下:[cpp] #include<termios.h> #include<unistd.h> #include<stdio.h> intgetch(void){structtermiostm,tm_old;intfd=STDIN_FILENO,c;if(tcgetattr(fd,&tm)<0)return-1;tm_old=tm;cfmakeraw(&tm);if(tcset...
能将图形水平翻转的函数 2017年02月05日 20 阅读 做2D游戏时应该用得到,将图形水平翻转,尤其是人物素材,可将本来朝向右边的翻转成朝向左边的。[cpp] #include<string.h> intflip_horizontal(intimg_width,intimg_hight,unsignedchar*in_red,//传入的红色 unsignedchar*in_green,//传入的绿色 unsignedchar*in_blue,//传入的蓝色 unsignedchar*in_alpha...
Linux系统下用C语言编写2D图形游戏 2017年02月05日 21 阅读 在Linux系统下,不要以为C语言就只能写那种只有字符的控制台程序,别忘了,Linux系统有FrameBuffer(帧缓冲),只要显示器是彩色的,并且是linux系统的,就可以用C语言代码通过读写FrameBuffer里的数据在屏幕上绘制图形;图形嘛,有png库,用它的函数解码图片文件,得到图片数组,共有red、green、blue、alpha四种数组,alpha用于图片之间的组合,最终将RGB数组输出到FrameBuffer就能显示了;想要动态图形效果,...
Linux下的声音编程方法 2017年02月05日 22 阅读 (1)数字音频音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。数字音频系统通过将声波的波型转换成一系列二进制数据,来实现对原始声音的重现,实现这一步骤的设备常被称为模/数转换器(A/D)。A/D转换器以每秒钟上万次的速率对声波进行采样,每个采样点都记录下了原始模拟声波在某一时刻的状态,通常称之为样本(sample),而每一秒钟所采样的...
Linux下利用FreeType2的API实现字符的显示 2017年02月05日 20 阅读 网上的FreeType2例子太少,能显示汉字的比较难找,C语言代码写的更难找,能找到的,基本上是被转载了N遍的同一个示例代码,基本上解决不了我的问题。于是乎,花费了不少时间才完成了这些代码;主要功能是:将传入的GB2312编码的char型字符串转换成图片数组并输出。主要原理是:将GB2312编码的char型字符串,转换成unicode编码的wchar_t型字符串;之后,利用FreeType2的API获取汉字的字体位图。代码看似不怎么复杂,之前找char转w...
研究mgaview的源码的成果 2017年02月05日 20 阅读 看mgaview的源码,看了几遍之后,发现它的主要工作原理比较简单,大致如下:开始打开图片文件读取文件头判断图片类型使用相应的函数解码图片为数组调用相应的函数将数组写入至屏幕结束源码文件不怎么多,也不是很复杂,并且,它的源码还分类别存放在不同的文件夹:src/src/inputsrc/outputmgaview的主程序源码当然就在src目录,h格式的文件只是声明了一些全局变量,还定义了一些宏。input目录该目录里的源码,是用于解码各种格式的图片文件,看文...
LCUI库:Hello World!程序的实现 2017年02月05日 20 阅读 如题,正在编写自己的LCUI库,新增了Lable部件,用它可以在LCUI程序的窗口中显示文本,具体,如下代码所示:[cpp] #include"LCUI_Build.h" #includeLCUI_MAIN_H/*包含LCUI库的必须头文件*/ #includeLCUI_WIDGETS_H #includeLCUI_FONTS_H #include"all.h" intmain(intargc,char*argv[]){LCUI_Appapp;/*LCUI...
LCUI库:用C语言编写简单的照片查看器 2017年02月05日 22 阅读 本程序主要使用了LCUI图形库的Picture_Box和Lable窗口部件。下面是源代码:[cpp] #include"LCUI_Build.h" #includeLCUI_MAIN_H/*包含LCUI库的必须头文件*/ #includeLCUI_WIDGETS_H #includeLCUI_FONTS_H #includeLCUI_INPUT_H #include"all.h" #defineICON_PATH"/mnt/Data/LC-SOFT/LCP...
Linux Gcc编译错误 2017年02月05日 20 阅读 Linux系统下的c编程与Windows有所不同,如果你在用gcc编译代码的时候提示‘for’ loop initial declarations are only allowed in C99 mode,可能就是因为你在loop循环比如for中使用未预先定义的变量,比如:for(int i=0;i<10;i++){}这种写法在vc里是没有错的,而子gcc就会提示错误,要求遵守c89标准,c89标准是不支持上述写法的。如果你非要这么写可以这样编译,使...
Qt中文乱码问题解决办法 2017年02月05日 20 阅读 WOWCode的主体部分基本已经完成了,对于我自己来说,其实已经足以应付我的需要了,不过如果发布的话,实在还是拿不出手,因为很多地方还需要完善,一些对我自己来说多余的功能也没有完成,今天尝试将程序移植到了另一台机子上,却出现了中文乱码问题,记录之。也许你在用这个方法实现中文化,但它确实不够严谨#include<QTextCodec> intmain(intargc,char*argv[]) { QApplicationapp(argc,argv...
C++ 函数名作为参数传递给另一个函数 2017年02月05日 20 阅读 将函数名作为参数传递给另外一个函数(其实函数名是一个函数指针)例1:int f1(){ return 1;}int f2(){ return 2;}void f(int f()){ printf("%d/n",f());}int main(){ f(f1); f(f2); return 0;}输出12例2:void listArray(void handler(int &item)){ int ia[] = {1, 2, 3, 4, 5, 6}; ...
C++中的引用和指针 2017年02月05日 19 阅读 先看下面一段关于引用的说明:引用是C++比C扩充的一种派生数据类型。引用是为对象取一个别名,不占存储空间。引用类型说明符为&例:int someInt;int& rInt = someInt;注意,在这里引用类型变量rInt是someInt的一个别名,也就是这两个表示的是同一个变量。它们指向的是同一个内存空间。声明一个引用变量时,必须同时使之初始化,即声明它代表哪一个变量。并且从此不可改变。一旦一个引用被初始化后,就不能改为指向其他对象。引...
C语言:从字符串中简单提取数值 2017年02月05日 19 阅读 在网络上看到很多人提到如何用C语言获取字符串中的数值的问题。其实这个问题的解决方法很多,这里给出一段简单的分析字符串,提取数值的代码:从字符串中简单提取数值,其主要功能有:1)扫描字符串中一段数值字符串;2)扫描一段连续数值字符,并按十进制格式提取数值;3)如果字符串第一个字符非数值字符,直接停止,报错;4)数值字符段后有非数值字符,直接停止读取后续字符,将提取的字符以十进制格式转换输出;其主要实现部分,见skip_atoi代码intskip_atoi(c...
Linux应用程序Helloworld入门 2017年02月05日 20 阅读 对于初学者来说(本人就是),如何开始写第一个程序至关重要。有的时候一个简单的问题会严重影响到学习的积极性和自信心。这里结合实际工作中的一些经验,总结方法步骤,对Linux下应用程序Helloworld入门做一个简单的介绍。不仅仅作为一个个人的小结,也希望能对各位学习中的朋友能有帮助。第一步:首先需要一个Ubuntu系统,可以是PC机,服务器,甚至是虚拟机(比如Vmware);第二步:在ubuntu系统上安装gcc编译器,可以采用如下命令;$sudoapt-...
如何获取Linux-gate.so.1动态库 2017年02月05日 19 阅读 前面“Linux应用程序Helloworld入门”已经提到在Linux下每个可执行文件都依赖于几个最为基本的动态库,其中一个就是linux-gate.so.1。从上面ldd给出的结果可以看出,这个linux-gate.so.1动态库有一些异样,libc.so.6的实际动态库路径在/lib/tls/i686/cmov/libc.so.6,而ld-linux.so.2是在/lib/ld-linux.so.2。那么不禁要问一个问题linux-gate.so.1这...
Java 位运算符 2017年02月05日 19 阅读 Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。表4-2 列出了位运算: 表4.2 位运算符及其结果 运算符 结果 ~ 按位非(NOT)(一元运算) & 按位与(AND) | 按位或(OR) ^ 按位异或(XOR) >> 右移 >>> 右移,左边空出的位以0填充 运算符 结果 << 左移 &...
Android UI进阶之弹窗的使用 2017年02月05日 19 阅读 讲下Android中的PopupWindow。姑且就叫做弹窗吧,其实和AlertDialog一样,也是一种对话框,两者也经常混用,但是也各有特点。下面就看看使用方法。首先初始化一个PopupWindow[java] PopupWindowmPop=newPopupWindow(getLayoutInflater().inflate(R.layout.window,null),LayoutParams.WRAP_CONTENT,LayoutParams.WR...
Android UI进阶之可延伸的图像 2017年02月05日 19 阅读 今天来讲下Android UI设计中常要用到的可延伸图像。除了最基本的png,jpg与gif三种格式外,android还有一种叫做Nine-Patch的可延伸图像.9.png。和png格式不同的是,他会随着属性物的大小变化而改变自己的大小,从而来适应属性物的大小。这个特点,在我们平常的UI设计中是非常实用的。最常见的一个图片做按钮背景,来适配字体大小,这时候,你会发现,这种可延伸图像非常的好用。下面就来讲讲如何使用吧。Android SDK提供了一个工具来...
Android UI进阶之style和theme的使用 2017年02月05日 19 阅读 今天来和大家分享一下Android中UI设计里面常会用到的style和theme。首先,style和theme都是资源,android提供了很多这样的默认资源。你可以来使用它们。同时你也可以自己定义style和theme。这非常的简单,只需要在res/values/这个路径里面新建一个.xml文件,而且他的根节点必须是<resources>.对每一个style和theme,给<style>element增加一个全局唯一的名字,也可以...