一、安装前须知
确保Go版本在1.8及以上
golang安装见 https://github.com/golang/go
二、安装
go get github.com/lxn/walk
go get github.com/akavel/rsrc
三、使用
1.创建 main.manifest 或 (main.exe.manifest) 文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<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>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
2.使用 rsrc 工具创建资源管理文件 rsrc.syso
rsrc -manifest main.manifest -o rsrc.syso
Tips:使用 -ico 为程序设定图标
rsrc -manifest main.manifest -ico ICON.ico -o rsrc.syso
3.编译程序
隐藏 dos 窗口:
go build -ldflags="-H windowsgui"
由于 Go 的线程的栈大小为128KB,如果产生栈溢出,可以在程序中加入:
import _ "runtime/cgo"
如果没有 GCC, 则按如下编译:
go build -ldflags="-H windowsgui -linkmode internal"