go 对windows api的调用

package main import ( "syscall" ) func abort(funcname string, err string) { panic(funcname + " failed: "+err) } func print_version(v uint32) { major := byte(v) minor := uint8(v >> 8) build := uint16(v >> 16) print("windows version ", major, ".", minor, " (Build ", build, ")\n") } func main() { h, err := syscall.LoadLibrary("kernel32.dll") if err!=nil { abort("LoadLibrary", err.Error()) } defer syscall.FreeLibrary(h) proc, err := syscall.GetProcAddress(h, "GetVersion") if err!=nil { abort("GetProcAddress", err.Error()) } r, _, _ := syscall.Syscall(uintptr(proc), 0, 0, 0,0) print_version(uint32(r)) } //windows 7下调试通过 // 附 一个go站 http://golangwiki.org //附 error 定义 type error interface { Error() string } 注: 函数原型 DWORD WINAPI GetVersion(void); 函数说明: 返回当前操作系统的版本号(在64位系统上是32位字节长度)。 返回值 如果函数执行成功,返回值的低字部分(低16位)是操作系统的主次版本号,高字部分(高16位)保存着操作系统平台的信息。 头文件:WinBase.h(包含在Windows.h头文件中) 库:Kernel32.lib 支持的最低版本的桌面客户端: Windows 2000 Professional [desktop apps only]

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2017-08-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

通过几个Hello World感受.NET Core全新的开发体验

2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布。我个人将.NET Core的核心特性归结为三点,它们...

21960
来自专栏小狼的世界

Silverlight学习笔记一:准备环境,开始第一个Siverlight 3程序

   工欲善其事,必先利其器,我一直觉得对于MS的东西,没有个强大的编辑器是万万不行的,绝对不想PHP那样的随意。所以,开始之前,我们必须准备好需要的工具,而且...

10420
来自专栏walterlv - 吕毅的博客

UWP 应用中 CoreApplication / Application, CoreWindow / Window 之间的区别

发布于 2018-07-29 23:51 更新于 2018-08...

33920
来自专栏Core Net

ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel、配置与环境

22830
来自专栏张善友的专栏

ASP.NET MVC扩展库

很多同学都读过这篇文章吧 ASP.NET MVC中你必须知道的13个扩展点,今天给大家介绍一个ASP.NET MVC的扩展库,主要就是针对这些扩展点进行。这个项...

20970
来自专栏逸鹏说道

跨平台:使用OWIN 为WebAPI 宿主

OWIN是什么? OWIN的英文全称是Open Web Interface for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平...

24340
来自专栏葡萄城控件技术团队

WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口

目录 WPF的消息机制(一)-让应用程序动起来 WPF的消息机制(二)-WPF内部的5个窗口 (1)隐藏消息窗口 (2)处理激活和关闭的消息的窗口和系统资源通知...

20650
来自专栏跟着阿笨一起玩NET

单元测试时候使用[ClassInitialize]会该方法必须是静态的公共方法,不返回值并且应采用一个TestContext类型的参数报错的解决办法

using Microsoft.VisualStudio.TestTools.UnitTesting;

21320
来自专栏Oracle

Oracle内存数据库使用

t.inmemory, t.inmemory_priority, t.inmemory_distribute, t.inmemory_compression, ...

14720
来自专栏Core Net

ASP.NET Core 2.0 : 五.服务是如何加载并运行的, Kestrel、配置与环境

40490

扫码关注云+社区

领取腾讯云代金券