zoukankan      html  css  js  c++  java
  • golang win32编程的一个dll坑

    例子

    package main
    
    import (
    	"github.com/lxn/win"
    	"strconv"
    	"syscall"
    )
    
    func _TEXT(_str string) *uint16 {
    	return syscall.StringToUTF16Ptr(_str)
    }
    func _toString(_n int32) string {
    	return strconv.Itoa(int(_n))
    }
    func main() {
    	var hwnd win.HWND
    	cxScreen := win.GetSystemMetrics(win.SM_CXSCREEN)
    	cyScreen := win.GetSystemMetrics(win.SM_CYSCREEN)
    	win.MessageBox(hwnd, _TEXT("屏幕长-:"+_toString(cxScreen)+"宽:"+_toString(cyScreen)), _TEXT(" 消息"), win.MB_OK)
    }
    


    唯一的就是有一个win这个go module里有一个坑,在phd.go 中

    func init() {
    // Library
    libpdhDll = syscall.MustLoadDLL("pdh.dll")
    
    
    // Functions
    pdh_AddCounterW = libpdhDll.MustFindProc("PdhAddCounterW")
    pdh_AddEnglishCounterW = libpdhDll.MustFindProc("PdhAddEnglishCounterW") // XXX: only supported on versions > Vista.
    pdh_CloseQuery = libpdhDll.MustFindProc("PdhCloseQuery")
    pdh_CollectQueryData = libpdhDll.MustFindProc("PdhCollectQueryData")
    pdh_GetFormattedCounterValue = libpdhDll.MustFindProc("PdhGetFormattedCounterValue")
    pdh_GetFormattedCounterArrayW = libpdhDll.MustFindProc("PdhGetFormattedCounterArrayW")
    pdh_OpenQuery = libpdhDll.MustFindProc("PdhOpenQuery")
    pdh_ValidatePathW = libpdhDll.MustFindProc("PdhValidatePathW")
    }


    PdhAddEnglishCounterW这个api只在vista以上版本支持,所以如果在xp下运行,在载入时会因找不到该函数的地址崩溃,临时解决方案,暴力注释掉

    //pdh_AddEnglishCounterW = libpdhDll.MustFindProc("PdhAddEnglishCounterW") // XXX: only supported on versions > Vista.


    更丰富的例子:https://github.com/lxn/walk


    初步感觉用go写win gui,是个没意思的事情!

  • 相关阅读:
    close connection error java.sql.SQLRecoverableException: IO Error: Broken pipe
    Mysql 备份与恢复
    MACBOOK 破解wifi密码
    MAC 安装homebrew
    Linux(CentOS / RHEL 7) 防火墙
    ORA-01031: insufficient privileges
    Oracle登录认证
    ORA-12162: TNS:net service name is incorrectly specified
    lsnrctl: .... cannot restore segment prot after reloc: Permission denied
    CentOS / RHEL 配置yum源
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3290215.html
Copyright © 2011-2022 走看看