Golang 中国

liujunjie

Golang China 第 8237 号会员,加入于 2018-01-12 12:06


liujunjie最近创建的主题


1 go语言,如用调用Com组件,请指点
Cgoliujunjie • 2018-01-12 14:46 • 最后回复来自 liujunjie
liujunjie 创建的更多主题

liujunjie最近回复了


回复了 liujunjie 创建的主题: go语言,如用调用Com组件,请指点 2018-01-12 14:46

//// 代码 dll为Com组件,会报错

package main // main
import (
“fmt”
“syscall”
“time”
“unsafe”
)

func main() {

defer func() { // 必须要先声明defer,否则不能捕获到panic异常
    //fmt.Println("c")
    if err := recover(); err != nil {
        fmt.Println(err) // 这里的err其实就是panic传入的内容,55
        defer time.Sleep(15 * time.Second)
    }
    //fmt.Println("d")
}()
var aint_appcode *int //uintptr
var astr_appmsg string
var mod = syscall.NewLazyDLL("yh_interface.dll") //yh_interface.dll    yh_interfaceproxy.dll
var proc = mod.NewProc("DllGetClassObject")

ret, _, _ := proc.Call(uintptr(unsafe.Pointer(aint_appcode)),
    uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(astr_appmsg))))
fmt.Printf("Return: %d\n", ret)

}

liujunjie 创建的更多回复