我堅持使用GetSystemTimes函數。C++ 代碼沒有任何問題,但是使用 golang 我得到三個 nil 而不是預期值我的代碼:package mainimport ( "log" "syscall" "unsafe")var ( modKernel32 = syscall.NewLazyDLL("kernel32.dll") procGetSystemTimes = modKernel32.NewProc("GetSystemTimes"))type SystemTimes struct { IdleTime *syscall.Filetime KernelTime *syscall.Filetime UserTime *syscall.Filetime}func main() { times, err := getSystemTimes() if err != nil { log.Fatal(err) } log.Printf("idle=%v, kernel=%v, user=%v", times.IdleTime, times.KernelTime, times.UserTime)}func getSystemTimes() (times SystemTimes, err error) { res, _, err1 := procGetSystemTimes.Call(uintptr(unsafe.Pointer(times.IdleTime)), uintptr(unsafe.Pointer(times.KernelTime)), uintptr(unsafe.Pointer(times.UserTime))) if res != 1 { return times, err1 } return}它非常簡單,非常類似于 stdlib 中的 syscall 的 GetProcessTimes 函數??纯矗业某绦虼蛴×耸裁矗篿dle=<nil>, kernel=<nil>, user=<nil>為什么?我期望錯誤或結果,為什么我的字段為空?配置:win8 x64,go1.4.2 windows/amd64
- 1 回答
- 0 關注
- 268 瀏覽
添加回答
舉報
0/150
提交
取消