golang 开发windows应用

闲着无聊又玩go语言找虐。。。——用go开发windows应用程序

想要用go开发windows应用必须先要安装必要的组件:

walk集成了很多windows的控件

go get github.com/lxn/walk

win是go调用windowsApi的一种实现

go get github.com/lxn/win

rsrc是连接walk/win和windows动态连接的工具

go get github.com/akavel/rsrc

有了这些我们就能实际的编码了

先测试一下winApi的有效性:

看了一下这位写的,比较到位,把之前编译运行报错的问题也找到了,恩感谢,但是源码里有段字符串拼错了

更正一下:

// GoWin project GoWin.go
package main

import (
    "github.com/lxn/win"
    "strconv"
    "syscall"
)

func _TEXT(_str string) *uint16 {
    return syscall.StringToUTF16Ptr(_str)
}
func _toString(_n int32) string {
    return strconv.Itoa(int(_n))
}
func main() {
    var hwnd win.HWND
    cxScreen := win.GetSystemMetrics(win.SM_CXSCREEN)
    cyScreen := win.GetSystemMetrics(win.SM_CYSCREEN)
    win.MessageBox(hwnd, _TEXT("屏幕长-:"+_toString(cxScreen)+"宽:"+_toString(cyScreen)), _TEXT("消息<a target=\"_blank\" href=\"http://blog.csdn.net/songbohr\">http://blog.csdn.net/songbohr</a>"), win.MB_OK)
}

注意:win组件里的phd.go中,

//这行要注释,如果你不是WIN7的狂热爱好者的话
//pdh_AddEnglishCounterW = libpdhDll.MustFindProc("PdhAddEnglishCounterW")

http://blog.csdn.net/songbohr/article/details/10511041

编译运行成功,注意这里必须是package main不然不会生产exe

package main

接下来试一下walk能不能行:

package main

import (
    "github.com/lxn/walk"
    . "github.com/lxn/walk/declarative"
    "strings"
)

func main() {
    var inTE, outTE *walk.TextEdit

    MainWindow{
        Title:   "SCREAMO",
        MinSize: Size{600, 400},
        Layout:  VBox{},
        Children: []Widget{
            HSplitter{
                Children: []Widget{
                    TextEdit{AssignTo: &inTE},
                    TextEdit{AssignTo: &outTE, ReadOnly: true},
                },
            },
            PushButton{
                Text: "SCREAM",
                OnClicked: func() {
                    outTE.SetText(strings.ToUpper(inTE.Text()))
                },
            },
        },
    }.Run()
}

编译运行成功,但是运行没结果,

搞了半天,仔细看了一下walk的文档

原来是要这样搞:

首先新建一个文件比如test.manifest(感觉做着绝对是个android粉)填入如下代码

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
        <dependency>
            <dependentAssembly>
                <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
            </dependentAssembly>
        </dependency>
    </assembly>

运行如下命令

rsrc -manifest 你应用的名字.manifest -o rsrc.syso
go build
go build -ldflags="-H windowsgui"

运行生成的exe,就能看到熟悉的windows界面了

感觉go开发windows应用还是不怎么方便,而且不太经济,调试和编译耗费的精力很大,

期待以后开发工具能再进一步优化一下

时间: 2024-08-06 00:08:22

golang 开发windows应用的相关文章

Windows下visual studio code搭建golang开发环境

Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装,最终会导致环境搭建失败,跟据这个教程几步,我们将可以快速的构建golang的开发环境. 开发环境: 一.安装 这里我用需要安装一些工具: 1.Visual Studio Code 1.0.0 2.Golang下载 这里我使用的是Go1.6. 3.git下载 这一步跟建环境没什么关系, 但是之后要引

转:windows 下的 eclipse安装goclipse 配置golang开发环境

windows 下的 eclipse安装goclipse 配置golang开发环境 windows 下的 eclipse安装goclipse 配置golang开发环境,捎带介绍了LiteIDE golang的配置 1. 下载goclipse eclipse plugins http://pan.baidu.com/s/1c0weLgO 安装完插件后,重启可以看到eclipse的右上角有个golang logo , 地鼠图标: 2. 下载golang,调试tools 下载Golang Window

golang在Windows下Sublime Text开发调试环境的配置

一.前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发.在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如果你从中得到了受益并且同时拥有博客园账户的话,衷心希望能得到你的一个小小[推荐]以资鼓励. 本人操作系统为Windows 8.1 64bit,开发工具选择如下:go1.4.2.windows-amd64Sublime Text 2(插件GoSublime/GoGdb) gdb.gcc(安装mingw

golang开发环境搭建

软件环境 以windows环境为例 1.go1.3.3.windows-amd64.msi Go语言安装包,下载地址: 官方地址:https://golang.org/dl/ Golang中国地址:http://www.golangtc.com/download 2.Git-1.9.4-preview20140929.exe git版本管理工具,golang很多第三方包被托管在github上,git结合go get可以下载对应的代码包 下载地址:http://git-scm.com/downlo

Linux下golang开发环境搭建

对于golang开发来说,Windows下可以用vscode或者liteide都不错,但是Linux下的开发也就只有vim了,所以怎么搞笑的利用vim进行golang开发呢? 参考官方推荐的一个插件:vim-go 安装步骤: vim-go的安装需要使用vim插件管理工具,我使用的是VundleVim,具体的安装操作按照该工具的readme来操作即可. 当vim-go安装完成之后,按照vim-go的readme里面的介绍,需要用到命令:GoInstallBinaries来安装需要用的工具,但是这里

Go语言开发Windows应用

Go语言开发Windows应用 当第一次看到Go程序在windows平台生成可执行的exe文件,就宣告了windows应用也一定是Go语言的战场.Go不是脚本语言,但却有着脚本语言的轻便简单的特性.相较于php和python之类以服务器控制台为主要战场的脚本语言来说,Go语言是真正的圆了“动态语言的应用开发梦”. Windows Api Windows桌面应用依赖于win api,画出各种应用界面和控件本质上就是调用windows提供的api.Go开发Windows App要做的第一件事情就是封

【环境篇】搭建golang开发环境

学习一门语言,很多人都会是从搭建环境开始.有的语言的环境比较复杂,而有的语言环境很简单.对于go而言,说简单,的确不难,但有些概念需要先对其有所理解,才知道为什么这么用.网上对于怎么搭建一个golang开发环境已有了很多的教程,在这里我会简单介绍,不做过多描述.本篇文章仅对一些概念进行介绍,以及分享对一些我本人搭建开发环境的心得与技巧,如有错误,欢迎指正和交流. 搭建golang环境 1.到golang下载地址下载对应环境的安装包或者源码,若是Linux环境的话,将源码包下载解压之后,放至/us

用Node.js开发Windows 10物联网应用

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了大量的投资,比如Windows 10就有一个单独的IoT版本.而今天推荐的文章是告诉大家如何把Node.js开发带到Windows 10 IoT中. 在月初Build大会上,微软发布了Windows 10 IoT Core Insider Preview,这个版本可以安装到树莓派2(Raspberry Pi

Unity3D开发Windows Store应用程序 注意事项

原地址:http://blog.csdn.net/jbjwpzyl3611421/article/details/12704491 针对最近在移植window store项目中遇到的问题,我整理了官方说明, 在此和各位开发者分享,避免在移植过程中走弯路!     Platform status 平台现状   Currently if you want to build a Windows Store apps player, you have to do it on Windows 8, thi