
C语言
文章平均质量分 70
EluEvin
这个作者很懒,什么都没留下…
展开
-
在ubuntu中安装编译工具mingw
原文:Mingw:在Linux系统下编译Windows的程序链接:http://www.sudu.cn/info/html/edu/20071227/87635.htmlUbuntu下可以直接安装:sudo apt-get install mingw32mingw32-binutilsmingw32-runtime安装后编译程序可以:i586-min转载 2016-01-07 18:54:17 · 1361 阅读 · 0 评论 -
关于字符编码 g_convert(), g_locale_to_utf8()
在GTK中,字符编码的默认形式是UTF-8的,其中所有显示的字符串,都需要使用utf8编码才能正常显示。 因此,几个字符编码的转换函数变得很重要。当然了,在其他的一些开发框架中字符编码转换的函数也是很重要的。这些工作决定我们的程序在执行的时候是否会显示乱码。 以下为g_lib中的几个转换函数。 在使用这几个函数的时候,首先要弄明白本地的字符编码格式,转载 2016-01-07 18:06:34 · 423 阅读 · 0 评论 -
Gtk+ for Windows 环境配置(使用msys2)
目前Windows下GTK官方推荐使用msys2来分发新版本,编译程序,下面介绍下如何使用msys2来配置环境并编译GTK程序。一、下载 首先到http://msys2.github.io/下载msys2,64位系统建议下载x86_64版,32位系统只能选择i686。二、安装 双击下载的安装程序,一步步下一步即可,安装目录建议使用默认目录,例如,我这里是安装的64位,即转载 2016-01-07 18:05:46 · 5172 阅读 · 0 评论 -
gtk计时器函数gint gtk_timeout_add((guint32 interval,GtkFunction function,gpointer data )
计时器函数可以用于为操作计时(例如,记录某项操作用了多长时间)。使用它的第一步是用g _ t i m e r _ n e w ( )函数创建一个计时器,然后使用g _ t i m e r _ s t a r t ( )函数开始对操作计时,使用g _ t i m e r _ s t o p ( )函数停止对操作计时,用g _ t i m e r _ e l a p s e d ( )函数判定计时转载 2016-01-04 22:26:39 · 260 阅读 · 0 评论 -
Windows下Dev C++试用
Windows下Dev C++试用 VS 2010 居然不支持C99.VS2010 C居然要在函数开始{}处才能声明变量。。。于是下了个Dev C++试试。 Bloodshed Dev-C++http://www.bloodshed.net/dev/http://en.wikipedia.org/wiki/Dev-C++htt转载 2015-12-02 20:30:38 · 249 阅读 · 0 评论 -
GTK 多线程例子
GTK线程的简单使用与线程中更新图形界面 1)线程的简单使用,通过一个简单例子来说明(能运行) 编译命令:gcc `pkg-config gtk+-2.0 --cflags --libs gthread-2.0` -std=gnu99 -o thread thread.c注意要加上gthread-2.0 C代码转载 2016-01-04 13:57:59 · 409 阅读 · 0 评论 -
多线程并发 g_thread_create()
同一进程可以包括多个线程,这些线程共享相同的内存空间,而进程都有各自独立的内存空间,进程之间通信需要专门的机制,这无疑增加了内核的开销,降低了系 统性能。线程带来的开销很小,内核无需单独复制进程的内存空间或文件描述符等,这就大量地节省了CPU时间,使得创建线程比进程的速度快数十倍。另外,多 线程程序作为一种多任务、并发的工作方式,还有以下的优点:1)提高应用程序响应时间;2)使多CPU系统更加有效转载 2016-01-04 13:57:05 · 500 阅读 · 0 评论 -
VS2005编译Cairo1.8
第一篇将流行的开源矢量库串起来乱侃了一番,希望还不了解矢量库的网友已经知道了这些大名鼎鼎的开源Project。了解了之后就要使用他们,但是使用的第一步,应该是先编译过去,然后才能谈使用。编译都没有做到的话,使用起来就更加困难重重了。按我之前的计划,将先用VisualStudio2005将Cairo、Skia这两个库编译过去,然后再说怎么来用他们。 本篇,就是Cairo1.8版移植到转载 2015-12-02 16:24:06 · 398 阅读 · 0 评论 -
VS2013编译iconv静态库
1. 下载并解压iconv 库:http://ftp.gnu.org/pub/gnu/libiconv/2、新建一个VS空项目(libIconv)(1)libIconv工程下新建一个文件夹iconv(2)将下载的库中lib文件夹下的所有文件拷贝到这个文件夹下(3)将烤入到iconv文件夹下的config.h.in重命名为config.h(3)将库中libch原创 2015-12-02 16:12:29 · 475 阅读 · 0 评论 -
linux下制作静态库和动态库的方法
linux下制作静态库和动态库的方法我们都知道 *.a 代表静态库;*.so 代表动态库。那么这两个库到底怎么制作呢? 制作静态库的方法:把代码编译为目标文件形式:# gcc -c liberr.c -o liberr.o使用工具ar创建一个存档文件:# ar rcs liberr.a liberr.o编译程序转载 2015-12-02 15:19:11 · 187 阅读 · 0 评论 -
GtkCombobox学习笔记
GtkCombobox学习笔记今天做东西时用到了一点GtkCombobox一点稍微复杂的功能,以前一直使用的简单text形式(下文有在DEVHELP中的原文)实现不了,然后就研究了下GtkTreeStore和 GtkCombobox联合使用的情况.主要借鉴了帮助文档和此网址的内容:http://blog.youkuaiyun.com/caterpillar_here/article/d转载 2015-12-23 17:24:55 · 693 阅读 · 0 评论 -
GTK3.0背景设置
由于GTK 3.0将许多GTK 2.0的API都丢弃,转到GTK 3.0下编译后有些不适应,所以感觉能在GTK 3.0下调试成功这个Demo还是很成功的。源码#include gtk/gtk.h> int main( int argc, char *argv[]) { GtkWidget *window转载 2016-03-29 11:26:23 · 225 阅读 · 0 评论 -
C语言使用正则表达式
据说一个好的程序员是会使用DB和Regular Expression的程序员,可见两者是多么重要。正则表达式是能极大地提高工作效率的工具,使用过Linux下各种具备RE特性的工具的人一定对此深有感触。很多语言都支持RE,用的最多的当然是脚本,其中以perl最盛。不过,用C语言来用RE不是很多见,但是有时候也很有用,我最近也是看到别人说道这个,所以搜了一些资料加上自己的体会来说一说RE在C语言里的应转载 2016-03-22 12:30:04 · 171 阅读 · 0 评论 -
读取Csv文件(c实现)
最近有个项目要读取Csv文件的内容,Csv文件还是蛮常用,所以想封装好,便于以后使用。使用方法可以从下面的main函数看出来,首先用ReadCsvData读取Csv文件到一个数组中,然后就可以使用GetCsvData读取想要的某行的数据了,最后结束时要用FreeCsvData释放空间。#include #include // For system("pause");#转载 2016-03-17 16:46:03 · 3143 阅读 · 0 评论 -
GTK常用控件之笔记本控件( GtkNotebook )
笔记本控件,可以让用户标签式地切换多个界面。当我们需要多窗口切换时,使用笔记本控件是一个明智的选择。笔记本控件的创建:GtkWidget *gtk_notebook_new(void);返回值:笔记本控件指针设置页标签的位置:void gtk_notebook_set_tab_pos( GtkNotebook *n转载 2015-12-25 16:12:22 · 213 阅读 · 0 评论 -
GTK常用控件之行编辑( GtkEntry )
行编辑,只允许输入一行内容的控件,如密码输入框。行编辑的创建:GtkWidget *gtk_entry_new(void);返回值:行编辑指针设置行编辑内容的最大长度:void gtk_entry_set_max_length(GtkEntry *entry, gint ma转载 2015-12-25 15:52:36 · 247 阅读 · 0 评论 -
GTK+学习笔记3——按钮构件
GTK+ 的按钮构件有很多种,常用的有如下四个:GtkButton:普通按钮GtkToggleButton:开关按钮GtkCheckButton:复选按钮GtkRadioButton:单选按钮这四个构件的继承关系如下:GtkButton:GtkButton就是普通的按钮,带有多种信号,常用的有以下三种:leav转载 2015-12-25 14:20:27 · 171 阅读 · 0 评论 -
关于GtkEntry无法键入光标
关于GtkEntry无法键入光标双子座 发布于 3年前,共有 3 条评论今天,准确地说是昨天,遇到一个很诡异的问题,这个问题并不常见:用GTK创建文本输入框(GtkEntry),编译通过并生成exe后运行,发现根本不能输入文本,甚至连光标都无法键入。示例代码如下:#include int main(int argc, char *argv[]) { GtkWid转载 2015-12-25 14:19:12 · 301 阅读 · 0 评论 -
mingw给程序添加图标
一般步骤是:step1:将.c源文件编译成.o目标文件step2:将.rc资源源文件及其资源编译成.res资源文件step3:将.o文件和.res文件连接成.exe文件示例:例如,有一个windows程序是prog.exe,这个程序的源文件是prog.c。现在打算把图标prog.ico添加到prog.exe程序中,这样做:1、创建prog.rc文件,文件内容转载 2016-01-08 17:07:17 · 193 阅读 · 0 评论 -
GTK+图形化应用程序开发学习笔记(十六)—文件选择构件
文件选择构件(GtkFileSelect)是一种种快速、简单的显示文件对话框的方法。它带有“ 确定”、“取消”、“帮助”按钮,可以极大地减少编程时间。 创建文件选择构件用函数gtk_file_selection_new.1.名称::gtk_file_selection_new功能:创建文件选择构件头文件:#include 函数原形:GtkWi转载 2015-12-24 15:23:10 · 179 阅读 · 0 评论 -
GTK+2.0---文件选择对话框(gtk_file_chooser)
这有两个选择(当然如果你自己从一个对话框控件中生成一个你想要的文件选择对话框我没意见),一个是GtkFileSelection控件,一个是GtkFileChooser控件,我使用后者,前者一般在新的程序中不使用了#include void print_filename(GtkWidget *file){ GtkWidget *dialog; gchar *filen转载 2015-12-24 15:17:05 · 1596 阅读 · 1 评论 -
C语言windows目录操作
C语言windows目录操作1.获得当前工作目录[cpp] view plaincopychar* _getcwd( char *buffer, int maxlen ); // 功 能 : 获得当前工作目录. // 头文件 : #include // 返回值 : 成功返回指向buffer的pointer转载 2015-12-15 09:31:27 · 277 阅读 · 0 评论 -
getopt的用法
getopt的用法getopt被用来解析命令行选项参数。就不用自己写东东处理argv了。#include extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, /转载 2015-12-28 12:30:26 · 128 阅读 · 0 评论 -
RGB888转RGB565
今天在REVIEW代码的时候,发现了这样一个宏定义:#define COLOR_TO_MTK_COLOR_SIMUL(color) ((((color) >> 19) & 0x1f) |((((color) >> 10) & 0x3f)转载 2015-11-24 10:26:31 · 227 阅读 · 0 评论 -
FreeType 2 Tourial翻译
FreeType 2 Tourial翻译1. Header files(包含头文件:3步)Locate the FreeType 2 include directory. (将FreeType include目录加载进编译包含include目录中。)Include the file named ft2build.h.Include the main FreeT转载 2015-09-17 16:32:56 · 511 阅读 · 0 评论 -
linux freetype 安装
linux freetype 安装原创 2015-09-17 14:49:34 · 260 阅读 · 0 评论 -
linux 字体文件目录
linux 字体文件目录:/usr/share/fonts/原创 2015-09-17 16:56:20 · 1343 阅读 · 0 评论 -
Ubuntu安装GTK
原文地址:http://www.cnblogs.com/niocai/archive/2011/07/15/2107472.html一、安装 1、安装gcc/g++/gdb/make 等基本编程工具$sudo apt-get install build-essential 2、安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件转载 2015-08-21 09:24:24 · 333 阅读 · 0 评论 -
创建守护进程
创建守护进程 守护进程也称为精灵进程,是一种运行在后台的特殊进程。 所有的守护进程的父进程都是init进程(PID为1的进程) 创建守护进程① 创建子进程后,父进程立即退出② 调用setsid函数,使创建的进程脱离控制终端,同时创建新的进程组,并称为该进程组的首进程③ 更改当前工作目录④ 关闭文件描述符,并重定向标准输入、输出和错误输出原创 2015-08-27 17:01:26 · 193 阅读 · 0 评论 -
Linux进程相关系统调用
Linux进程相关系统调用 创建进程定义函数pid_t vfork(void);相关函数wait,execve表头文件#include函数说明vfork()会产生一个新的子进程,其子进程会复制父进程的数据与堆栈空间,并继承父进程的用户代码,组代码,环境变量、已打开原创 2015-08-27 17:02:32 · 462 阅读 · 0 评论 -
进程基础知识
进程基础知识 问题1:进程和程序的区别进程是操作系统中正在运行的任务,是运行中的程序程序是存储在磁盘上包含有可执行机器代码和指令的文件 问题2:进程的类别交互进程,批处理进程 和 守护进程 交互进程:由shell启动的进程,在执行过程中要求与用户进行交互批处理进程:一个进程序列,负责按顺序启动其他的进程守护进程:执行特定功能或者执行系统相关任务的后台进程原创 2015-08-27 16:59:09 · 250 阅读 · 0 评论 -
C语言菜鸟的奇葩经历 第二回 喜闻乐见定义抱得美人归 悲从中来声明为人作嫁衣
都说失败是成功之母,那成功呢?难道是失败之父?简直是谬论!包不平在完成了对auto关键字的一顿猜想和实践后,已经对学习C语言不再恐惧了。可是,各位看官不要忘了,上面共有六个问题。中间四个问题姑且算是解决了。那么第一个和第六个呢?虽然,包不平已经知道怎么在C程序正确(姑且算正确)使用变量了,那么这么做的意义是什么呢?或者说第一个问题的答案是什么呢?在大学课本(谭浩强老师的C语言程序设计)中,这个原创 2014-11-30 23:37:13 · 112 阅读 · 0 评论 -
C语言菜鸟的奇葩经历 第一回 小试牛刀VC6.0大跌眼镜 班门弄斧GCC一夫当关
俗话说,光说不练假把式,光练不说傻把式。说干就干,包不平心里早就在磨拳擦掌了。于是,他首先打开Microsoft Visual C++,在新建文件中输入了一下内容: i=0;int j=0;auto s=0;auto int k=0;int auto p=0; 然后,编译,没有问题。竟然没有问题?是的!就是没有问题。惊讶、怀疑和好奇在包不平心里打转。奇了怪了,没有数原创 2014-11-30 21:02:25 · 153 阅读 · 0 评论 -
字符编码、unicode、代码页、矢量字体及多国语开发
无辜的“联通”: 在windows下打开一个记事本,输入“联通”保存后,再次打开却发现“联通”不见了 首先了解,不同编码文本的存储,开头字节: UTF-8: EF BB BF UTF-16/UCS-2,little endian: FF FE UTF-16/U转载 2015-09-18 14:00:04 · 723 阅读 · 0 评论 -
LIBPNG显示PNG图像
这两天查了很多资料,终于搞定了PNG解码的问题。我是用LIBPNG实现的。先看看png图像的格式: PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG file signature)域和按照特定结构组织的3个以上的数据块(chunk)组成。 PNG定义了两种类型的数据块,一种是称为关键数据块(critical chunk),这是标准的数据块,另一种叫做转载 2015-11-23 10:20:28 · 293 阅读 · 0 评论 -
LIBPNG读写PNG文件
分享一下我使用的代码,以下是读取png图片文件的代码:#include #include #include /******************************图片数据*********************************/typedef struct _pic_data pic_data;struct _pic_da转载 2015-11-23 10:22:00 · 873 阅读 · 1 评论 -
BMP文件结构的探索
一、文件格式Bmp文件是非常常用的位图文件,无论是游戏还是其他都被广泛使用。针对bmp文件的处理也有一堆现成的api进行调用,然而文件内部究竟怎样,如何自己来解析这样的文件呢?为了消除无聊,我用了几天时间来研究了一下,同时作为学习笔记,进行记录。首先,整个bmp文件的内容可以分为3到4块。之所以分为3到4块而不是固定的值,是因为,对于bmp来说可能存在调色板或者一些掩码。具体稍候讨论。转载 2015-10-15 20:46:02 · 151 阅读 · 0 评论 -
BMP位图文件结构及平滑缩放
BMP位图文件结构及平滑缩放西安交通大学流体机械研究所张义云---- 用普通方法显示BMP位图,占内存大,速度慢,在图形缩小时,失真严重,在低颜色位数的设备上显示高颜色位数的图形图形时失真大。本文采用视频函数显示BMP位图,可以消除以上的缺点。---- 一、BMP文件结构---- 1. BMP文件组成---- BMP文件由文件头、位图信息头、颜色信息和图转载 2015-10-15 20:41:45 · 229 阅读 · 0 评论 -
位图文件结构(*.bmp文件)
位图文件结构(*.bmp文件)位图文件结构简单,是数字图像处理时常用的输入和输出数据格式。位图文件是逐像素保存图像的,一般不压缩。位图文件由多种色彩模式,现在最常用的是24位真彩色。即用RGB方式来保存像素颜色,每个像素三个字节,每个字节的值表示一种颜色值,范围是0-255,共能表示16777216种颜色。位图文件分为四部分:1.位图文件头 占14字节转载 2015-10-15 20:00:06 · 554 阅读 · 0 评论 -
把24位bmp位图按水平扫描和垂直扫描转为点阵数组
把24位bmp位图按水平扫描和垂直扫描转为点阵数组 本来朋友有一个移动和联通的logo点阵,现在突然需要电信的logo,所以就跟他要来了,移动和电信的logo数据,试着显示出来,其实也就是每个字节有8个点,1为显示的点,0不显示!麻烦的就是有要水平扫描和垂直扫描! 所以就写了下面的程序,这个程序是未成品,我只弄了40*40的位图,而且是24位的bmp图片,其它转载 2015-10-15 20:01:27 · 820 阅读 · 0 评论