zoukankan      html  css  js  c++  java
  • Go -- 调用dll库

    package main   
      
    import (  
      "syscall"
      "unsafe"   
    )  
      
    func main(){  
        h, err := syscall.LoadLibrary("DllTest.dll")  
        if err != nil {  
          abort("LoadLibrary", err)  
        }  
      defer syscall.FreeLibrary(h)  
      proc, err := syscall.GetProcAddress(h, "SomeFunction")  
      if err != nil {  
        abort("GetProcAddress", err)  
      }  
      var str = "31231"
      r, _, _ := syscall.Syscall(uintptr(proc), 1, uintptr(unsafe.Pointer(&str)), 0, 0)  
      print_version(uint32(r))  
    }  
      
    func abort(funcname string, err error) {  
      panic(funcname + " failed: " + err.Error())  
    }  
      
    func print_version(v uint32) {  
        major := byte(v)  
        minor := uint8(v >> 8)  
        build := uint16(v >> 16)  
        print("windows version ", major, ".", minor, " (Build ", build, ")
    ")  
    }  
    
  • 相关阅读:
    latex
    anaconda
    git stash
    YOLO训练Pedestrain
    OpenCL C
    OpenCL
    OpenVX
    caffe源码阅读
    居住证积分查询地址
    jdk 1.8内存逐步增大的一个bug
  • 原文地址:https://www.cnblogs.com/mafeng/p/8550091.html
Copyright © 2011-2022 走看看