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,是个没意思的事情!

  • 相关阅读:
    eclipse的maven配置及本地仓库配置
    协方差矩阵计算方法
    马氏距离
    Python中的相对路径
    Pytorch中的LSTM和LSTMCell
    The Unreasonable Effectiveness of Recurrent Neural Networks
    RNN的灵活性
    LSTM和GRU
    Nesterov Accelerated Gradient
    Wasserstein GAN最新进展:从weight clipping到gradient penalty,更加先进的Lipschitz限制手法
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3290215.html
Copyright © 2011-2022 走看看