为了账号安全,请及时绑定邮箱和手机立即绑定

winapi GetSystemTimes 函数不填充 lpIdleTime/

winapi GetSystemTimes 函数不填充 lpIdleTime/

Go
烙印99 2021-10-04 16:54:28
  我坚持使用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 函数。看看,我的程序打印了什么:idle=<nil>, kernel=<nil>, user=<nil>为什么?我期望错误或结果,为什么我的字段为空?配置:win8 x64,go1.4.2 windows/amd64
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 240 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信