Go win32
先說的讓人興奮的吧,“GO的庫開發(fā)在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 個(gè)文件 1,936,473 字節(jié)
2 個(gè)目錄 261,820,047,360 可用字節(jié)
C:\go-pro\go-self-package>gin-main.exe
1 is ok
2 is ok
這就是我為什么堅(jiān)持GO的原因,名廠名牌,就是不一樣啊,比那個(gè)WebAssembly強(qiáng)啊!!!!
為什么這么說呢,因?yàn)?#xff0c;我們偉大的GO盡然可以調(diào)用win32系統(tǒng)函數(shù)啊!!!!!
哇,哈哈哈,這不是強(qiáng)一點(diǎn)兒,是上了天啊!!!!!!
?
windows前端的兄弟姐妹們,我們開GO吧
?
一 DEMO
//win.go 顯示磁盤剩余空間,win32系統(tǒng)函數(shù)"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)
}
}
//運(yùn)行
go build win.go
C:\go-pro\go-win32>win.exe
2017/09/20 14:48:55 Free 257812mb
看到?jīng)]有,無與倫比啊,哈哈哈
Finally:
如此美妙,大家真的可以認(rèn)真考慮一下,把GO跑到windows下了。
前途無量!!!!
轉(zhuǎn)載于:https://www.cnblogs.com/woodzcl/p/7561495.html
總結(jié)
- 上一篇: WebGoat系列实验Cross-Sit
- 下一篇: msyql存储长度