存档

‘程序开发’ 分类的存档

【Sybase】The transaction log in database master is almost full的解决办法

2011年1月11日 没有评论

在Sybase ASE上做一个测试,执行一个sql文件,一次性添加上千条数据,结果就出现这个警告了:

The transaction log in database master is almost full

具体提示信息为:

阅读全文...

分类: 程序开发 标签: 12,071次阅读

FFmpeg编译出错undefined reference to `img_convert’的解决方法

2011年1月3日 没有评论

刚准备拿FFmpeg做点东西,在Ubuntu上安装了最新的FFmpeg v0.6.1,找了一段实例程序(见文末)来编译,结果出现了一下编译错误:

test.c:212: warning: implicit declaration of function 'img_convert'
/tmp/cc3q7gsX.o: In function `main':
test.c:(.text+0xbf0): undefined reference to `img_convert'
collect2: ld returned 1 exit status

这段程序以前在FFmpeg v0.4.9版本上是可以编译的,无奈在Ubuntu上装不上v0.4.9版,只好根据CSDN论坛版友的提示来修改一下程序。

问题出现在我下载的ffmpeg的版本不一样,我是用svn下载了最新的版本,在这个版本的函数库里没有img_convert函数,在0.4.8以前的版本中还有这个函数,新版本中用sws_getContext和sws_scale代替了。简单说明如下:

新版本的ffmpeg添加了新的接口:libswscale来处理图像缩放。

以前使用img_convert来把RGB转换成YUV12,现在使用新的接口。新接口更加标准和快速,而且里面有了MMX优化代码。换句话说,它是做缩放更好的方式。

用来缩放的基本函数是sws_scale。但一开始,必需建立一个SwsContext的概念。这将进行想要的转换,然后把它传递给 sws_scale函数。类似于在SQL中的预备阶段或者是在Python中编译的规则表达式regexp。要准备这个上下文,使用 sws_getContext函数,它需要源的宽度和高度,我们想要的宽度和高度,源的格式和想要转换成的格式,同时还有一些其它的参数和标志。然后我们像使用img_convert一样来使用sws_scale函数,唯一不同的是我们传递给的是SwsContext。

解决办法是将原有的img_convert函数改为sws_scale函数,原来的函数调用为:

阅读全文...

分类: 程序开发 标签: 13,910次阅读

【C】编译出现incompatible implicit declaration of built-in function ‘round’警告的解决方法

2010年12月26日 没有评论

编译一段代码里面增加一个round函数,竟然编译的时候出现了下面的警告

warning: incompatible implicit declaration of built-in function ‘round’

确认头文件math.h也加上了,后来查了下,在编译选项里增加-std=c99就能解决了。

没细究是为什么,哪位知道原因的话烦请告诉一声。

分类: 程序开发 标签: 6,700次阅读

【C/C++】static关键字的作用

2010年12月25日 没有评论

static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种在C/C++语言中使用, 第三种只在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).

(1)局部静态变量

(2)外部静态变量/函数

(3)静态数据成员/成员函数

下面就这三种使用方式及注意事项分别说明

一、局部静态变量

在C/C++中, 局部变量按照存储形式可分为三种auto, static, register

与auto类型(普通)局部变量相比, static局部变量有三点不同

阅读全文...

分类: 程序开发 标签: , 6,579次阅读

volatile关键字的作用:防止变量被编译器优化

2010年12月25日 没有评论

volatile关键字是一种类型修饰符,用它声明的类型变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

其中关键在于两个地方:     
 
1. 编译器的优化

在本次线程内, 当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一个寄存器中;以后,再取变量值时,就直接从寄存器中取值;

当变量值在本线程里改变时,会同时把变量的新值copy到该寄存器中,以便保持一致

当变量在因别的线程等而改变了值,该寄存器的值不会相应改变,从而造成应用程序读取的值和实际的变量值不一致

当该寄存器在因别的线程等而改变了值,原变量的值不会改变,从而造成应用程序读取的值和实际的变量值不一致 

2. 在什么情况下会用到

阅读全文...

分类: 程序开发 标签: , , 7,264次阅读

PPM、PGM、PBM图像文件格式说明

2010年12月18日 2 条评论

PPM、PGM、PBM三种都是图像文件格式:

  • PPM->Portable PixMap 支持真彩色图形,可以读上面所有格式,输出PPM图形
  • PGM->Portable GreyMap 支持灰度图形,能够读PBM图形和PGM图形,输出PGM图形
  • PBM->Portable BitMap 支持单色图(1个像素位)

三种文件格式结构相同,都非常简单,没有压缩。由表头和图像数据两部分组成。表头数据各项之间用空格(空格键、制表键、回车键或换行键)隔开,表头由四部分组成:

① 文件描述子:指明文件的类型以及图像数据的存储方式;

② 图像宽度;

③ 图像高度;

④ 最大灰度值或颜色值.

阅读全文...

分类: 程序开发 标签: 7,344次阅读

【SQL】行列互换代码实例

2010年12月13日 没有评论

对数据表中的行列进行互换,实际开发中用到的一个技巧。直接通过sql语句实现,比起先用sql获取数据再通过其他代码进行行列转换要方便很多。

看到一段很好的参考代码,摘录学习:

阅读全文...

分类: 程序开发 标签: 3,529次阅读

字符编码笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian

2010年11月24日 2 条评论
字符编码笔记:ASCII,Unicode和UTF-8

作者: 阮一峰 

版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 

最后修改时间:2007年10月29日 09:46 

今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。 

结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。 

下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。 

阅读全文...

分类: 程序开发 标签: 11,478次阅读

【PHP】统计中英文单词数(GB2312/UTF-8编码)

2010年11月24日 4 条评论

英文单词的统计可以直接用php原生的函数str_word_count来进行统计。但这个函数对于中文汉字显得无能为力,无法准确统计到汉字个数。

解决办法是根据汉字的编码规则,自己来实现中文汉字数统计和中英文单词数统计。汉字编码参考Unicode编码表GB2312区位码、编码表与编码规则

对于GB2312编码的字符采用以下函数:

阅读全文...

分类: 程序开发 标签: , 8,972次阅读

GB2312区位码、编码表与编码规则

2010年11月24日 没有评论

GB2312共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时收录包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字符。       

GB2312区位码

GB2312对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。

  • 01-09区为特殊符号。          
  • 16-55区为一级汉字,按拼音排序。           
  • 56-87区为二级汉字,按部首/笔画排序。          
  • 10-15区及88-94区则未有编码。        

阅读全文...

分类: 程序开发 标签: 35,045次阅读

无觅相关文章插件,快速提升流量