Go win32
先說的讓人興奮的吧,“GO的庫開發在windwos上盡然是一摸一樣的啊”
C:\go-pro\go-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-pro\go-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-pro\go-win32>win.exe
2017/09/20 14:48:55 Free 257812mb
看到沒有,無與倫比啊,哈哈哈
Finally:
如此美妙,大家真的可以認真考慮一下,把GO跑到windows下了。
前途無量!!!!
轉載于:https://www.cnblogs.com/woodzcl/p/7561495.html
總結
- 上一篇: WebGoat系列实验Cross-Sit
- 下一篇: msyql存储长度