GTK 代码从Linux移植到Windows心得
调试代码的难度是首次编写这些代码的两倍,因此,如果你在编写代码时就已经发挥了全部的聪
明才智,那么按照常理,你将无法凭借自己的智慧去调试这些代码。
----题记
看到这句
话有没有想揍人的感觉?你Y一技术文章,写得跟新概念作文似的。呵呵,热烈庆祝博客访问量突破1w大关。每
天有很多熟悉的和陌生的朋友到访,我想那些通过搜索引擎来到这里的朋友,我的文章应该解决了你的一些问题吧。
我的想法就是分享技术心得,减少不必要的麻烦和重复劳动时间。
我的程序在Linux下的界面差不多完成了,想达成之前跨平台的愿望,想把它移植到windows
下
GTK
+
开发
环境在win32&VC++6 IDE环境下的搭建
1.
到 http://gladewin32.sourceforge.net/
下载并安装以下文件
1)
、
Gtk
+/Win32 Runtime Environment Installer
2)、
Gtk
+/Win32
Development Environment
这是别人已经编译好的GTK
,一个是runtime,主要是
.dll,另一个是win32开发
用的文件集。主要是.h和.lib文件。
2.
测试:
在VC++6中建立一
个工程。在project setting的link里面,去掉那些.lib文件,加入如下:
glib-2.0.lib gtk
-win32-2.0.lib
gdk-win32-2.0.lib gobject-2.0.lib gdk_pixbuf-2.0.lib gthread-2.0.lib
gmodule-2.0.lib pango-1.0.lib intl.lib
。
而后,在.cpp文件
里面粘贴如下代码:
#include
<gtk
/gtk
.h>
int main( int argc,char *argv[] ){
Gtk
Widget *window;
gtk
_init (&argc, &argv);
window = gtk
_window_new (GTK
_WINDOW_TOPLEVEL);
gtk
_widget_show (window);
gtk
_main ();
return 0;
}
编译,如果有提示,在project setting的
c/c++里面删除一些stdafx.h等字样的参数。必要时查看一下cl.exe编译器的帮助
按照上面的介绍,基本可以无错通过hello world。可是把我在Linux下的代码沾到VC上,问题就来了
首先是字符集的问题,UTF 和 GBK,导致了多少麻烦和安全漏洞。
先用word以UTF-8格式打开Linux下的源代码,沾到vc里,
运行时报错 Pango-WARNING **: Invalid UTF-8 string passed to
pango_layo
相关文档:
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,在广
大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一
个更高效,更稳定 ......
转载:
现在linux下有越来越多的优秀的播放软件,xmms,m-player,beep-media-player,totme,rhythmbox,等等等等,但是这些播放软件都不能很好的解决mp3文件中文信息乱码的问题。
究其原因,现在网上绝大多数(99%以上)的mp3都是网友在windows下压制的,文字信息编码方式自然是GBK,到了linux下面就没有lftp ......
由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。
一、 UNIX下关于文件权限的表示方法和解析
SUID 是 Set User ID, SGID 是 Set Group ID的意思。
UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面 ......
Linux中定时器的算法实现
定时器的作用
定时器在操作系统中起到了举足轻重的作用。在做IO操作时,需要超时机制保证任务不处于无休止的等待状态;在延时处理时,可以通过“闹表”进行相对准点的唤醒操作。在多任务操作系统中,定时器是一种非常常用的资源。
对于熟悉硬件 ......
Linux系统都是以文件的形式来访问硬件设备的,各种设备是以系统设备文件的形式存在于系统设备目录/dev中的。这些文件用于访问系统中所有不同类型的硬件。例如,/dev/mouse文件对应鼠标设备文件,用于读取鼠标输入的;/dev/fd0文件对应软驱设备文件,用于处理软盘读写的;
Linux文件系统中每个文件用 i节点 来标识,关 ......