go语言调用标准标准dll

本文提供了一个使用Go语言调用C++编译的`OrderEncrypt_x64.dll`库的示例,详细展示了如何通过`syscall`和`unsafe`包进行函数调用和参数转换,包括`initChinalinEncrypt`、`authorize`和`encryptFile`三个函数的调用过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近有个客户需要使用go语言调用我们的dll库,于是写了个示例程序支持客户

package main

import "C"
import (
    "fmt"
    "syscall"
    "unsafe"
)

func IntPtr(n int) uintptr {
    return uintptr(n)
}

func StrPtr(s string) uintptr {
    return uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(s)))
}
func Lib_initChinalinEncrypt() {
    lib := syscall.NewLazyDLL("OrderEncrypt_x64.dll")
    fmt.Println("dll:", lib.Name)
    initChinalinEncrypt := lib.NewProc("initChinalinEncrypt")
    fmt.Println("+++++++initChinalinEncrypt Proc:", initChinalinEncrypt, "Hellow")

    ret, _, err := initChinalinEncrypt.Call()
    if err != nil {
        fmt.Println("lib.dll initChinalinEncrypt 运算结果为:", ret)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值