天天看点

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_layout_set_text()

所有的构件的字都是乱码。 网上的建议是 g_local_to_utf8()

然后是编译器的差异,因为要用纯c,所以实用的工程源文件是c而不是默认的cpp

这就遇上编译器的差异了。gcc和vc上那个c编译器还是很有差别。比如vc6.0的c编译器要求变量必须定义在函数的头部,而gcc允许定义在任意位 置。折腾半天才把所有的变量调整完。

好容易编译通过,又显示乱码,再改就遇到vc6.0的那个著名的bug,编译就死在哪里了。现在编译通过了,链结又出问题了。我最初的编写一次,两处运行 的美好愿望破灭了。

罢了,先把Linux上的写完,windows 下的一点一点改吧。

转载:http://hi.baidu.com/deep_pro/blog/item/1…107e3e6f6e.html