这里的链接都是指向我逝去的个人主页的,所以没法用了。留在这里留作纪念。

使用的不是什么大路货。开发环境是Dev-C++,而产生窗口的工具是Gtk+。都是在windows环境下使用的开源的东西。写这个新手教程的目的是让仍然处在学习阶段,而不是为赚钱逼得没法选择的人,能够看到微软提供的解决方案之外额东西。但是,由于这两个东西使用起来是不大让人习惯的,配置也要一番功夫,所以给一个图解教程来打发我卧床养病的时间。

step1:
访问Bloodshed.net(国外),下载最新版本的Dev-C++
这个是国内镜像的地址:http://www.c-view.org/soft/devcpp/downloads/devcpp4980.exe
我的主页上也有一个mirror:
http://www.noasia.net/taowen/software/devcpp4980.exe

step2:
把软件安装到你希望的位置。没有什么需要讲的。主意一下GPL的标识,真的是开源的东西哦。Dev-C++的核心编译器就是linux上的主力编译器gcc,只不过这里用的是gcc的windows的移植版本,移植的版本名叫mingw,另外有一个cygwin的一直版本,以后再说了。而且Dev-C++有一个蛮不错的开发环境,用来学习C/C++是再好不过了,和经典的VC6有的一拼。想起vs.net庞大的身躯,寒。

step3:
安装完了之后从开始菜单中找到Dev-C++,启动之后会发现要求选择一下语言和外观。我相信愿意写点小程序的人,这个应该可以自己搞定,所以就浪费网络空间来贴图了。
进去之后是如图的样子。先从文件中新建一个项目来。如果你以前习惯的是tc,可能觉得不大习惯写点小程序都要开一个项目(project)。而vc用关的人就不会了。那是因为一个程序一般都不是一个源文件能够搞定的,所以开一个项目来记录项目中用到的源文件,统一管理是正道。
废话少说,接着下一步。

step4:
点击了菜单项之后,会出现一个如图的对话框。需要填写一些东西。首先是要选择你要写的程序的类型,一开始,还是用经典的字符界面下的
HelloWorld开始吧,所以选择Console Application(控制台程序),下面蓝色的注解说明了这个程序就是一个像MSDOS环境下一样的字符界面程序。
然受填写工程的名称,这里是HelloWorld。
选择使用的语言类型,还是大众化的C比较好。而且后面要使用的GTK+这个图形用户界面库也是C的库。
全部搞定之后点确定,会让你选择保存项目配置的位置。制定一个地方点保存。就能接着下一步了。

step5:
点击了确定之后就能来到一个打开了的文件编辑窗口。这个文件就是main.c,是由开发环境自动生成的,而且还没有存盘。你在其基础上添加一行printf,如图。然后就完成了源代码的编写。下面的步骤是存盘,编译,执行。

step6:
编译执行可以用F9一键搞定。在你没有保存源文件的情况下,直接按F9将弹出一个要求保存main.c的对话框。当然你可以把它保存为任意文件名,在任意地方。保存好了之后,出现一个编译进度显示的窗口,然后就是如图的执行结果了。这结果可能让你不解,其实都是那个system("pause")导致的,你在dos窗口下运行pause命令,也能看到那个按任意键继续...的提示。如果你用惯的是VC,则对这个不以为然。以前写程序的时候都是不添加这行的,程序照样会在执行候停住,其实那是vc在背后做了手脚的原因,而Dev-C++更显得透明。

step7:
下一步是要产生一个有窗口的程序。我选择的是GTK+,要不然就没有必要写这么一大堆东西了,因为那个东西难配置。不过在进入GTK+之前,先来看看用windows自己的标准办法,也就是所谓的sdk来写一个最简单的窗口程序是如何吧。
点击文件->关闭工程能够把状态回复到最开始的样子。然后再次新建一个工程,不过这次工程的配置要改一下,看看图吧,照着写。
然后是保存,按F9编译执行。

step8:
执行的是Dev-C++自动产生的一个标准程序,运行的结果是这个样子的。但是可以看到代码长度比较长,而且还有这个程序只能在windows下运行,不能拿到unix环境下重新编译以获得可移植性。而下面要介绍的GTK+则是一个比较好的窗口界面开发库,比直接使用windows的sdk来写窗口要有很多好处,不过最大的好处还是体会一种使用自由开源东西的爽。虽然觉得没有必要,为了写一个窗口弄个那么大的东西来。但是我觉得至少挺好玩的。如果你要是有兴趣,就继续来看用GTK+怎么把一个窗口给弄出来吧。

step9:
现在要做的事情是从网上把GTK+给down下来。GTK+是一个库,分为运行时库和开发时库。顾名思义,运行时库就是运行用GTK+开发的程序要能够运行所需要的库。而开发时库就是要开发GTK+,所需要的一些.h和.lib文件,也叫编译时库。
这里时下载的地址:
http://www.noasia.net/taowen/software/GTK+/GTK-Runtime-Environment-2.2.4.exe
http://www.noasia.net/taowen/software/GTK+/GTK-Development-Environment-2.2.4.exe
前一个运行时(runtime)后一个是开发时开发时(development)。下载之后把他们安装上。其实也就是接压缩,假定你安装运行时库的位置是@runtime(你自己用实际的位置来替换),开发时库的位置是@Development。
图为安装时的截图。

step10:
要想编写GTK+的程序,就先要让别人写好的程序能够在你的机器上运行。也就是先把runtime的支持搞定。去哪儿找别人写好的windows下的GTK+程序呢?我提供一个:
http://www.noasia.net/taowen/software/GTK_Adder.rar
解开压缩里面有一个exe文件。你点击执行就能看到如图的出错提示了。

step11:
既然出错了就要解决问题。问题很明显就是还没有让运行时支持给运转起来。不是已经安装了runtime库了吗?我不是说了吗,那个安装只是一个把文件解压缩到目标目录的过程。你还需要让windows知道去哪儿找到runtime库。所谓runtime的库,其实就是dll文件。dll文件在运行程序的时候动态载入,你需要通过控制面板添加一个包含dll文件的路径到path环境变量中才能让widnows知道在哪儿来寻找那些dll文件。
控制面板->系统->高级->环境变量->双击系统变量中的path那一行。
参见图,高亮的部分即为添加的路径。@runtime\lib(@runtime需要用你安装运行时库的路径来替代)。

step12:
再次运行那个下载的文件中的程序,可以看到希望的窗口了。

step13:
下面就是要开始编写GTK+的程序了。
和前面一样新建一个windows程序,只是把名字改成HelloGTK+而已。自己搞定。main.c暂时不用动它,后面会编辑。
现在来添加开发时库的支持,先前的安装也是那样,只是把文件准备好了,同样要让开发环境知道去哪儿寻找需要的.h和.lib文件。现在先添加一个指示去哪儿寻找.lib文件的路径,如图。
工具->编译选项->目录->库
填入的时@development\lib

step14:
现在把需要包含的具体lib文件告诉开发环境。
工程->工程属性->参数
在链接器框里面填入:
-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv

step15:
然后是把寻找.h文件的路径告诉开发环境。同样是
工具->编译选项->目录->C包含文件
填入以下目录
@development\include\gtk-2.0
@development\lib\gtk-2.0\include
@development\include\atk-1.0
@development\include\pango-1.0
@development\include\glib-2.0
@development\lib\glib-2.0\include 

step16:
填入以下代码来替代Dev-C++默认产生的一堆东西:

  代码: [复制到剪贴板]  
  1. #include <gtk/gtk.h>

  2. static void destroy( GtkWidget *widget,
  3.                      gpointer   data )
  4. {
  5.     gtk_main_quit ();
  6. }

  7. int main( int   argc,
  8.           char *argv[] )
  9. {
  10.     GtkWidget *window;
  11.     gtk_init (&argc, &argv);
  12.     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  13.     g_signal_connect (G_OBJECT (window), "destroy",
  14.                       G_CALLBACK (destroy), NULL);
  15.     gtk_widget_show (window);
  16.     gtk_main ();
  17.     return 0;
  18. }

按F9就能够编译运行了。正常情况是编译能够正常通过,但是如果你发现出错(下面会出来一个东西)了,则说面前面添加的一堆东西里面哪里出问题了。但是运行是要出错的,下面是出错提示:

step17:
调整一下编译选项,
工具->编译选项
填入
-mms-bitfields
选中编译时加入一下命令

step18:
按ctrl+F11重新编译,然后按ctrl+F10运行。就可以看到如图的窗口了
posted on 2004-05-25 19:31  taowen  阅读(1905)  评论(0编辑  收藏  举报