zoukankan      html  css  js  c++  java
  • Go win32

    先说的让人兴奋的吧,“GO的库开发在windwos上尽然是一摸一样的啊”

    C:go-progo-self-package>go build gin-main.go

    2017/09/20 14:39 1,936,384 gin-main.exe
    2017/09/20 14:35 89 gin-main.go
    2 个文件 1,936,473 字节
    2 个目录 261,820,047,360 可用字节

    C:go-progo-self-package>gin-main.exe
    1 is ok
    2 is ok

    这就是我为什么坚持GO的原因,名厂名牌,就是不一样啊,比那个WebAssembly强啊!!!!

    为什么这么说呢,因为,我们伟大的GO尽然可以调用win32系统函数啊!!!!!

    哇,哈哈哈,这不是强一点儿,是上了天啊!!!!!!

    windows前端的兄弟姐妹们,我们开GO吧

    一 DEMO

    //win.go 显示磁盘剩余空间,win32系统函数"Kernel32.dll"=>"GetDiskFreeSpaceExW"

    import (
      "syscall"
      "unsafe"
      "log"
    )

    func main() {

      kernel32, _ := syscall.LoadLibrary("Kernel32.dll")
      defer syscall.FreeLibrary(kernel32)
      GetDiskFreeSpaceEx, _ := syscall.GetProcAddress(syscall.Handle(kernel32), "GetDiskFreeSpaceExW")

      lpFreeBytesAvailable := int64(0)
      lpTotalNumberOfBytes := int64(0)
      lpTotalNumberOfFreeBytes := int64(0)

      r, _, _ := syscall.Syscall6(uintptr(GetDiskFreeSpaceEx), 4,
            uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr("F:"))),
            uintptr(unsafe.Pointer(&lpFreeBytesAvailable)),
            uintptr(unsafe.Pointer(&lpTotalNumberOfBytes)),
            uintptr(unsafe.Pointer(&lpTotalNumberOfFreeBytes)), 0, 0)

      if 0!=r {
      log.Printf("Free %dmb", lpTotalNumberOfFreeBytes/1024/1024)
      }
    }

    //运行

    go build win.go

    C:go-progo-win32>win.exe
    2017/09/20 14:48:55 Free 257812mb

    看到没有,无与伦比啊,哈哈哈

    Finally:

    如此美妙,大家真的可以认真考虑一下,把GO跑到windows下了。

    前途无量!!!!

  • 相关阅读:
    线程 定时任务 实现思路
    Days Floating In ShenZhen(1)
    由于未能找到具有自动生成的控件来引发回发事件,导致发生错误
    在ASP.NET中使用AJAX.NET (转译自MSDN)(二)
    Every Time I Wake up I want sleep more
    漂泊在深圳的日子2
    512今日历程
    流金岁月
    对自己的思考
    关于绑定自动生成的下拉式菜单的错误
  • 原文地址:https://www.cnblogs.com/woodzcl/p/7561495.html
Copyright © 2011-2022 走看看