zoukankan      html  css  js  c++  java
  • 用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-32in

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

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

    C:Nimin

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

    (你用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编码,重新保存

    然后再编译一次,就好了

  • 相关阅读:
    HDU1720 A+B Coming
    HDU1390 ZOJ1383 Binary Numbers
    HDU1390 ZOJ1383 Binary Numbers
    HDU2504 又见GCD
    HDU2504 又见GCD
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1020 ZOJ2478 Encoding
    HDU1020 ZOJ2478 Encoding
    HDU2097 Sky数
  • 原文地址:https://www.cnblogs.com/liulun/p/4714858.html
Copyright © 2011-2022 走看看