赞
踩
创作人QQ:851301776,邮箱:lfr890207@163.com,欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
package main
import "C"
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
"time"
"log"
_ "github.com/jmoiron/sqlx"
)
var MysqlDb *sql.DB
//export MySQL_conn
func MySQL_conn(dbDSN string)(int){
//1.打开数据库
MysqlDb, MysqlDbErr = sql.Open("mysql", dbDSN)//打开数据库失败
if MysqlDbErr != nil {
fmt.Print("open mysql failed!\n")
var r = -1
return r
}
fmt.Print("open mysql succeed!\n")
MysqlDb.SetConnMaxLifetime(100*time.Second)
var r = 0
return r
}
func main(){
}
注意核心点:
1.必须导入“C”包,import "C"
2.必须在外部条用的函数加上://export 函数名(//export MySQL_conn)
3.必须是main包,main函数什么都不做
1.安装go的标准库
go install -buildmode=shared -linkshared std
2.编译生成动态库,例如源文件名:hello.go
go build -buildmode=c-shared -o libhello.so hello.go
注意:hello.go是源文件名称
libhello是自己所起的库名称
3.查看文件夹会新增:libhello.h 和libhello.so
libhello.h:供C程序调用的头文件
libhello.so:生成的动态库
这是C的重命名
这是函数的声明
多参数函数的返回值定义
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。