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文件如图:
golang 编译为dll 的方法的更多相关文章
- Golang调用windows下的dll动态库中的函数 Golang 编译成 DLL 文件
Golang调用windows下的dll动态库中的函数 package main import ( "fmt" "syscall" "time&quo ...
- golang编译源代码和交叉编译方法
目录 golang编译源代码和交叉编译方法 编译源代码 编译go1.4 编译go1.12 交叉编译 golang编译源代码和交叉编译方法 编译源代码 golang编译其实很简单,下载一份最新的源代码后 ...
- Golang 编译成 DLL 文件
golang 编译 dll 过程中需要用到 gcc,所以先安装 MinGW. windows 64 位系统应下载 MinGW 的 64 位版本: https://sourceforge.net/pro ...
- calling c++ from golang with swig--windows dll(一)
calling c++ from golang with swig--windows dll 之前项目组开发的项目核心代码全部使用C++语言,新项目可能会引入golang,花了一天多时间研究了wind ...
- VC将同一份代码同时编译为Dll和Exe的方法
开发中经常遇到这样的情况,需要开发一个某某功能的接口Dll,但是Dll不能直接调试,你至少需要一个Loader 但是Loader和Dll本身不在同一个工程里,虽然都在本机的话并不影响源码级调试,但是总 ...
- 关于.Net中Process的使用方法和各种用途汇总(二):用Process启动cmd.exe完成将cs编译成dll
上一章博客我为大家介绍了Process类的所有基本使用方法,这一章博客我来为大家做一个小扩展,来熟悉一下Process类的实际使用,废话不多说我们开始演示. 先看看我们的软件要设计成的布局吧. 首先我 ...
- calling c++ from golang with swig--windows dll 二
Name mangling && Name demangling 在讲述golang如何利用swig调用windows dll之前,需要了解一个概念:Name Mangling (或者 ...
- calling c++ from golang with swig--windows dll (三)
calling c++ from golang with swig--windows dll 三 使用动态链接库(DLL)主要有两种方式:一种通过链接导入库,在代码中直接调用DLL中的函数:另一种借助 ...
- calling c++ from golang with swig--windows dll (四)
calling c++ from golang with swig--windows dll 四 前面讲述了windows环境下golang如何通过swig调用C++ dll.由于编译c++代码使用了 ...
随机推荐
- python之三级菜单作业
作业需求如下 1.根据用户的输入打印相应的省.市.县的信息 2.每次只要用户输入b,则返回上一级菜单 3.每次只要用户输入q,则直接退出 4.用户输错需要有提示 homework_dict = {'内 ...
- 把System.Drawing.Image对象img,在页面的Image控件上显示出来
1.保存到本地,然后调用. //定义文件名 string iname = DateTime.Now.ToString("yyMMddhhmmss"); //保存到服务器,b是 ...
- struts框架总结
1.struts2框架开发的过程:先导包,再写配置(写struts.xml配置,还有在web.xml中进行过滤器的配置,过滤器的配置一定不能少) 2.struts框架是前端web层的框架.主要的特点: ...
- Java ENUM枚举的用法
DK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 用法一:常量 在JDK1.5 之前,我们定义常量都是: publicstaticfianl... ...
- 泛型约束where条件的使用(可以通过类型参数动态反射创建实例)
定义抽象的人类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...
- servlet 中 service ,doGet , doPost 关系
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...
- db2 存储过程中的玩意
aix的top是topas.vmstat也是一个玩意,但是不懂. AND C_DEP_CDE like substr(I_C_DPT_CDE,1,2)||'%';--db2中字符串的加法用||这个 ...
- samtools 工具
软件地址: http://www.htslib.org/ 功能三大版块 : Samtools Reading/writing/editing/indexing/viewing SAM/BAM/CRAM ...
- ST3 插件和技巧
Emmet插件: 快速生成HTML文档结构, 快速编写跨浏览器的CSS并自动帮助你同时编辑, 强大! 语法技巧 简单实用, 值得掌握! SideBar Enhancements插件: 改进了侧边栏, ...
- Kubernetes web界面kubernetes-dashboard安装
本文讲述的是如何部署K8s的web UI,前提是已经有一个k8s集群后,按照如下步骤进行即可.(如下步骤都是在master节点上进行操作) 1.下载kubernetes-dashboard.yaml文 ...