您的位置:首页 > 运维架构 > Linux

GTK 代码从Linux移植到Windows心得

2010-04-10 18:41 239 查看
调试代码的难度是首次编写这些代码的两倍,因此,如果你在编写代码时就已经发挥了全部的聪
明才智,那么按照常理,你将无法凭借自己的智慧去调试这些代码。

----题记
看到这句
话有没有想揍人的感觉?你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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: