一、背景
为了更好兼容Windows,有时候需要直接在Go程序里面去调用Windows系统的API,比如在Go程序里面直接控制Windows窗口。
二、环境搭建
Windows下GO的下载、安装和配置
Windows下GO的下载、安装和配置可参考:
使用Visual Studio Code来搭建GO开发环境
采用微软开源的Visual Studio Code来搭建GO开发环境,可参考:
在安装过程可能出现golint失败,原因是国内的网络屏蔽,golang.org被和谐。解决方案如下:
1. 在cmd中切换到“GOPATH”目录,利用git下载glint,即执行
git clone https://github.com/golang/lint.git
2. 复制%GOPATH%\src\github.com\golang\lint目录到%GOPATH%\src\golang.org\x
go build编译失败的问题
在windowns下用Go语言的cgo时我们会用到的GCC编译器,如果没有安装GCC编译器,在go build时会遇到如下错误:
cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
一般通过安装MinGW解决,需要安装64位版本,可下载如下posix版本:
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-posix/seh/
三、调用Windows API
概述
我们可以利用syscall包和unsafe包与系统直接通信。可参考:
注意unsafe包操作内存是不安全的,在使用的时候要了解我们能做什么和不能做什么,具体可参考官方文档:
Windows API文档可参考官方文档: