前言

本文得到了“樂師”的大力支持,

我们一起调试程序到深夜,要是没有他的帮忙,

我不知道要多久才能迈过这道坎,

另外“归心”还有其他人也提供了帮助,

他们都来自于QQ群:“Nim开发集中营”469329878;

感兴趣的朋友,可以加这个群一起讨论

配置GUI开发环境

我在这篇博客中,写到了Nim开发环境的搭建

那篇博客中说MingW是必选的,

这对于开发一个普通的Nim程序来说,没有问题,但要开发GUI程序,还不够

官方安装包中所包含的的MingW安装包有点问题

如果你用编译命令:--app:gui,编译你的程序,将会出错

如果你不用这个编译命令,那么在你执行你的程序时,会先打开一个命令行窗口,再打开你的GUI程序。

具体为什么会出错,我还不是很清楚

(有可能那个MingW的安装包是64位的,也有可能那个安装包是阉割版的)

所以我们要自己安装一个MingW,

Nim官方网站推荐到MingW官网去下载64位的安装包,

MingW官网,要求你先装一个安装工具,再通过安装工具下载你需要的MingW程序

(说实在的,那个安装工具会搞的你很乱)

我是用“乐师”推荐给我的TDM安装工具安装MingW的

要注意的是,一定要安装32位的MinGW

我现在也不是很清楚为什么64位的MingGW为什么不行

安装好之后需要配置一下环境变量,把如下路径配置到环境变量中:

C:\TDM-GCC-32\bin

(当然你如果装到别的路径下去了,那就另当别论)

然后你应该把Nim的bin路径也配置到环境变量中:

C:\Nim\bin

这样你就可以使用命令行来编译你的程序了

(你用aporia官方提供的IDE来编译你的程序,默认是没有设置--app:gui开关的)

开发GUI程序

好下面我们写个程序

# test a Windows GUI application

import
  windows #proc MessageBox(hWnd: int, lpText, lpCaption: CString, uType: uint): int
#  {stdcall, import: "MessageBox", header: "<windows.h>"} discard MessageBox(0, "中文试试", "Nimrod GUI Application", 0)

在这个程序中我们使用了windows模块

你可以在这里看到windows模块提供的API:http://nim-lang.org/docs/windows.html

你还可以使用IUP模块GTK模块开发GUI程序

编译并执行程序

然后通过下面的命令行,来编译这个程序:

nim c --app:gui -d:release  wingui.nim

注:

nim是编译器

c是compile的缩写

-app:gui是编译成gui程序的开关

-d:release是release编译开关

wingui.nim是程序源文件

这行命令必须在程序源文件所在目录下执行

命令执行完成后,在同目录下会生成可执行文件

运行这个程序,你会发现中文乱码:

这是你只要把源码文件改成ANSI或者gb2312编码,重新保存

然后再编译一次,就好了

用Nim语言开发windows GUI图形界面程序的更多相关文章

  1. Quartz(GUI)图形界面程序----Quartz Web

    下载.设置和运行Quartz(GUI)图形界面程序----Quartz Web 一.获取Quartz Web程序(Quartz GUI).早期的 Quartz 框架开发者意识到一个 GUI 对于某类用 ...

  2. 在ubuntu上使用wxWidgets成功开发一个图形界面程序

    编译wxWidgets 下载最新版的源码,wxWidgets-3.0.2.wxWidgets在liunx是通过wxGTK实现的.wxGTK和wxWidgets的源码打包在一起.wxGTK依赖GTK+, ...

  3. 在桌面Linux环境下开发图形界面程序的方案对比

    在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...

  4. CentOS7 下安装GUI图形界面GNOME

    在安装Gnome包之前,需要检查一下网络是否有网络(使用ping www.baidu.com) 一.先装X windows,-y表示参数同意所有软件安装操,当出现 Complete!说明这里安装成功了 ...

  5. Go语言开发Windows应用

    Go语言开发Windows应用 当第一次看到Go程序在windows平台生成可执行的exe文件,就宣告了windows应用也一定是Go语言的战场.Go不是脚本语言,但却有着脚本语言的轻便简单的特性.相 ...

  6. CentOS 7安装Gnome GUI 图形界面

    当你安装centos服务器版本的时候,系统默认是不会安装 CentOS 的图形界面程序的,比如:gnome或者kde, 那么如果你想在图形界面下工作的话,可以手动来安装CentOS Gnome GUI ...

  7. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  8. [转载]CentOS 7安装Gnome GUI 图形界面

    原文链接:http://www.centoscn.com/image-text/config/2015/0528/5552.html 当你安装centos服务器版本的时候,系统默认是不会安装 Cent ...

  9. CentOS7安装GUI图形界面

    本文转自centOS7下安装GUI图形界面,侵权删. 1. 在命令行下 输入下面的命令来安装Gnome包. # yum groupinstall "GNOME Desktop" & ...

随机推荐

  1. JSON的一点:

    目录一:把 JSON 文本转换为 JavaScript 对象二:JSON 实例 - 来自字符串的对象 一.把 JSON 文本转换为 JavaScript 对象JSON 最常见的用法之一,是从 web ...

  2. Windows下解压版mysql的安装方法

    1 首先下载mysql的解压版的rar安装包 1 将安装包解压到安装路径.C:\Program Files (x86)\MySQL2 将安装路径下的bin追加到环境变量"PATH" ...

  3. 手动获取酷我Mp3外链

    素材→http://player.kuwo.cn/webmusic/st/getNewMuiseByRid?rid=MUSIC_随便找一首歌http://www.kuwo.cn/yinyue/1034 ...

  4. JS获得URL超链接的参数值

    /** * 获取指定URL的参数值 * @param url  指定的URL地址 * @param name 参数名称 * @return 参数值 */ function getUrlParam(ur ...

  5. exp

    想将远程机器上的数据库备份,搞了一上午,终于解决了: exp 用户名/密码@ip/service名 file=地址+文件名

  6. 本地socket使用AF_UNIX

    int socket(int domain, int type, int protocol); domain参数代表地址族,我们最常用的是TCP/IP协议通信中使用的是AF_INET,在有些情况下建立 ...

  7. webDriver环境搭建与测试

    1.安装jdk 2.安装eclipse 3.安装selenium 由于使用的是开发语言是java,因此需要安装java版的selenium包.下载地址:http://pan.baidu.com/s/1 ...

  8. c++:string函数

    string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化此外,string类还支持 ...

  9. Spring 配置 Spring JPA 发生错误的解决方法

    今天在项目的applicationContext.xml中配JPA时 <?xml version="1.0" encoding="UTF-8"?> ...

  10. cocos2d 3.X Shader 变暗和变灰

    转自http://www.waitingfy.com/archives/1741 1.为了节约一张图引发的Shader使用  我们注意到这个游戏当中经常使用一些按钮,美术会给两张图,一张稍微暗点,表示 ...