GNOME下,更新了MPlayer之后,发现在文件浏览器中,通过直接点击或右键菜单的方式,无法播放影音文件,报类似这样的错:“Failed to open file:///home/yours/%E4%B8%AD%E6%96%87.avi”。通过MPlayer自身的菜单选项Open,则可以打开影音文件,并播放无误。
经查,应该是打开URL路径时出的bug,不支持中文(估计包括其它Unicode)。
解决方法:
控制台下
$ sudo gedit /usr/share/applications/mplayer.desktop
找到这句
Exec=gmplayer %U
修改成
Exec=gmplayer %f
保存退出
这样,在文件浏览器中,发送给mplayer命令的文件路径参数就被修改成本地物理路径,而非URL路径。如果其它程序出现类似问题,也可以参考这样的解决方案。
补充一下,实际上我们也可以不去编辑那个desktop文件,而采用这样的方法:右击“应用程序”->“编辑菜单”->找到“MPlayer Movie Player”,双击打开“启动器属性”对话框->将“命令”里的“gmplayer %U”改成“gmplayer %f”即可。
2007年11月21日星期三
2007年10月25日星期四
GIMP界面设置小技巧一则
习惯了Photoshop的朋友多不适应GIMP的分离式的界面,据说以后GIMP将采用和Photoshop类似的界面以吸引更多的用户。不过当前最新的2.4版界面还没有改变,所以介绍一下我这个灵机一动想到的小技巧,以方便某些朋友。
方法很简单,在Gnome下,窗口的左上角菜单都有一个“常居顶端”项目,GIMP的窗口也不例外。每次使用GIMP时,如果感觉不方便,就把那两个窗口置顶就行了。之后的界面操作,就和Photoshop的手感差不多了。
这个方法在我的Ubuntu下的Gnome下是行得通的,不知道KDE环境、Win32和Mac下能不能行得通,看官自己试一试就知道了。
方法很简单,在Gnome下,窗口的左上角菜单都有一个“常居顶端”项目,GIMP的窗口也不例外。每次使用GIMP时,如果感觉不方便,就把那两个窗口置顶就行了。之后的界面操作,就和Photoshop的手感差不多了。
这个方法在我的Ubuntu下的Gnome下是行得通的,不知道KDE环境、Win32和Mac下能不能行得通,看官自己试一试就知道了。
2007年10月12日星期五
判断一个指针是否为NULL的操作何时进行?
今天看到一篇Blog:《NULL指标两三事》,文中谈的主题即是我这篇Blog的题目,我这里也只是对原文的做些简单的记录。
文中谈到的问题,也是我们平常出现的问题,即在操作一个指针前,我们常常在不需要判断指针是否为NULL时做了判断,而在需要判断时却想当然地把它漏掉了。
例如:delete时,完全可以对一个NULL指针进行操作,而我们却要多余地加上一个“if(ptr!=NULL)”判断;
又如:strlen时,如果参数给了一个NULL指针,就可能造成整个程序崩掉,我们却以为strlen自己会做NULL指针判读,并在获得一个NULL参数时return。
另外,在原文的评论栏中有一问一答,合理地解释了为什么strlen这样的接受指针参数的函数,会不做“if(NULL==ptr)return;”这样的操作。嗯,为了效率,这么做充分体验了C的精神。想像一下,对于一个错误的参数,检测函数的返回难道比在调用前就检测参数更省事么;何况如果同一个参数穿过层层的函数调用,一个个检测函数返回是多么可怕的事,不如在调用函数事先来个参数检测。实际上,像strlen这样的函数,也不是没有在函数内部做参数检测,只不过它用的是非常合理的assert断言机制,即满足了功能,又满足了效率。
以后再操作指针时,要记得有这么回事~
文中谈到的问题,也是我们平常出现的问题,即在操作一个指针前,我们常常在不需要判断指针是否为NULL时做了判断,而在需要判断时却想当然地把它漏掉了。
例如:delete时,完全可以对一个NULL指针进行操作,而我们却要多余地加上一个“if(ptr!=NULL)”判断;
又如:strlen时,如果参数给了一个NULL指针,就可能造成整个程序崩掉,我们却以为strlen自己会做NULL指针判读,并在获得一个NULL参数时return。
另外,在原文的评论栏中有一问一答,合理地解释了为什么strlen这样的接受指针参数的函数,会不做“if(NULL==ptr)return;”这样的操作。嗯,为了效率,这么做充分体验了C的精神。想像一下,对于一个错误的参数,检测函数的返回难道比在调用前就检测参数更省事么;何况如果同一个参数穿过层层的函数调用,一个个检测函数返回是多么可怕的事,不如在调用函数事先来个参数检测。实际上,像strlen这样的函数,也不是没有在函数内部做参数检测,只不过它用的是非常合理的assert断言机制,即满足了功能,又满足了效率。
以后再操作指针时,要记得有这么回事~
订阅:
博文 (Atom)