用Nim语言开发windows GUI图形界面程序
前言
本文得到了“樂師”的大力支持,
我们一起调试程序到深夜,要是没有他的帮忙,
我不知道要多久才能迈过这道坎,
另外“归心”还有其他人也提供了帮助,
他们都来自于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
编译并执行程序
然后通过下面的命令行,来编译这个程序:
nim c --app:gui -d:release wingui.nim
注:
nim是编译器
c是compile的缩写
-app:gui是编译成gui程序的开关
-d:release是release编译开关
wingui.nim是程序源文件
这行命令必须在程序源文件所在目录下执行
命令执行完成后,在同目录下会生成可执行文件
运行这个程序,你会发现中文乱码:

这是你只要把源码文件改成ANSI或者gb2312编码,重新保存
然后再编译一次,就好了

用Nim语言开发windows GUI图形界面程序的更多相关文章
- Quartz(GUI)图形界面程序----Quartz Web
下载.设置和运行Quartz(GUI)图形界面程序----Quartz Web 一.获取Quartz Web程序(Quartz GUI).早期的 Quartz 框架开发者意识到一个 GUI 对于某类用 ...
- 在ubuntu上使用wxWidgets成功开发一个图形界面程序
编译wxWidgets 下载最新版的源码,wxWidgets-3.0.2.wxWidgets在liunx是通过wxGTK实现的.wxGTK和wxWidgets的源码打包在一起.wxGTK依赖GTK+, ...
- 在桌面Linux环境下开发图形界面程序的方案对比
在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...
- CentOS7 下安装GUI图形界面GNOME
在安装Gnome包之前,需要检查一下网络是否有网络(使用ping www.baidu.com) 一.先装X windows,-y表示参数同意所有软件安装操,当出现 Complete!说明这里安装成功了 ...
- Go语言开发Windows应用
Go语言开发Windows应用 当第一次看到Go程序在windows平台生成可执行的exe文件,就宣告了windows应用也一定是Go语言的战场.Go不是脚本语言,但却有着脚本语言的轻便简单的特性.相 ...
- CentOS 7安装Gnome GUI 图形界面
当你安装centos服务器版本的时候,系统默认是不会安装 CentOS 的图形界面程序的,比如:gnome或者kde, 那么如果你想在图形界面下工作的话,可以手动来安装CentOS Gnome GUI ...
- centOS7下安装GUI图形界面
1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...
- [转载]CentOS 7安装Gnome GUI 图形界面
原文链接:http://www.centoscn.com/image-text/config/2015/0528/5552.html 当你安装centos服务器版本的时候,系统默认是不会安装 Cent ...
- CentOS7安装GUI图形界面
本文转自centOS7下安装GUI图形界面,侵权删. 1. 在命令行下 输入下面的命令来安装Gnome包. # yum groupinstall "GNOME Desktop" & ...
随机推荐
- [python](爬虫)如何使用正确的姿势欣赏知乎的“长得好看是怎样一种体验呢?”问答中的相片
从在知乎关注了几个大神,我发现我知乎的主页画风突变.经常会出现 ***长得好看是怎样一种体验呢? 不用***,却长得好看是一种怎样的体验? 什么样***作为头像? ... 诸如此类的问答.点进去之后发 ...
- 由Selenium1转变为Selenium2所遇到的问题
1.使用ant脚本运行测试,报NoClassDefError,但使用junit方式运行或debug,都没有错误. 原因:找不到包,但具体是哪个包,不清楚:且为何使用junit方式运行就没有问题,也不清 ...
- yii安装 /You don't have permission to access on this server
在安装yii的时候 ,当打开了init.bat进行配置的时候小黑本弹出了个小黑框立刻就关闭了, 进入cmd模式再打开init.bat就出现了"You don't have permissi ...
- 51nod 1138 连续整数的和(数学公式)
1138 连续整数的和 #include <iostream> #include <cmath> #include <cstdio> using namespace ...
- 让C++程序打印自身源码
本人原创文章,欢迎阅读,禁止转载. 这绝对是惊艳到让你眼前一亮(为了简洁,故意没考虑资源问题和编译警告). #include <iostream> #include <fstream ...
- Java学习笔记 06 数字格式化及数学运算
一.数字格式化 DecimalFormat类 >>DecimalFormat是NumberFormat的子类,用于格式化十进制数,可以将一些数字格式化为整数.浮点数.百分数等.通过使用该类 ...
- 【转】浅谈html5网页内嵌视频
转自 http://www.pchou.info/web/2014/01/30/52ea01e13a7f1.html
- select 取的是session里面的值时
原来是写了一个select标签,然后用js循环取出来,发现问题是本来嵌在页面右边的页面整个弹出来, 后来改成html:optionsCollection就好了: 效果图:
- 第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用
今天学习了下scala中的链式调用风格的实现,在spark编程中,我们经常会看到如下一段代码: sc.textFile("hdfs://......").flatMap(_.spl ...
- Android中的PopupWindow
1.功能 PopupWindow这个类用来实现一个弹出框,可以使用任意布局的View作为其内容,这个弹出框是悬浮在当前activity之上的,可以设置显示位置. 2.需求 弹出软键盘,实现键盘功能从而 ...