zoukankan      html  css  js  c++  java
  • golang 编译为dll 的方法

    之前一直再找如何将geojson 转为 svg 格式的数据,看到github上大多都是js来转的,只有一篇是golang来做的,想来把它封成dll 给c#、c++ 调用,网上查了很多方法,并没有写的很详细,以至于让我绕了很大的圈子,今天把它记录下来方便以后查看,下面是代码

    package main
    
    import "C"
    
    import (
    	"fmt"
    
    	"github.com/fapian/geojson2svg/pkg/geojson2svg"
    )
    
    //export CreateSvg
    func CreateSvg(str_json string, height, width float64) (svgstr string) {
    	svg := geojson2svg.New()
    	err := svg.AddFeatureCollection(str_json)
    	if err != nil {
    		fmt.Printf("svg add fearurcolltion err json is :%s\n", str_json)
    		return svgstr
    	}
    	svgstr = svg.Draw(width, height)
    	return
    }
    
    
    func main() {
    
    	
    }
    

      

    其中需要注意的是  

    import "C"  一定要写
    //export CreateSvg  需要导出来的函数上面一定要写 
    //export [函数名] 这样的注释否则编译成的dll中没有到处的函数


    最后编译的命令为:go build -buildmode=c-shared -o convertsvg.dll main.go

    然后会生成.h的头文件 和dll文件

    我们可以用depends来看一下编译好的dll文件如图:

    
    
  • 相关阅读:
    Python基础(一)
    计算机编程和编程语言
    初始Markdown
    Python模块
    Python递归以及面向过程编程
    Python推导式和匿名函数
    Python学闭包函数和装饰器
    Python函数的特点
    Python文件高级应用和如何使用函数
    Python字符编码和文件处理
  • 原文地址:https://www.cnblogs.com/wuyaxiansheng/p/10062236.html
Copyright © 2011-2022 走看看