当前位置: 首页 > news >正文

做音乐网站赚钱吗营销软文推广平台

做音乐网站赚钱吗,营销软文推广平台,wordpress 链接传参数,东莞网站建设在线推广思路 将 C 库包装成 C 库 -> golang 通过 cgo 调用 C 库 C 相关文件 目录列表 include/ some.h C 库头文件some_wrapper.h < 用于将 C 库包装成 C 库的头文件 lib/ libsome.a C 库 src/ some_wrapper.cpp < 用于将 C 库包装成 C 库的源码文件 源码示例 some.h…

思路

将 C++ 库包装成 C 库 -> golang 通过 cgo 调用 C 库

C ++ 相关文件

目录列表

  • include/
    • some.h C++ 库头文件
    • some_wrapper.h <= 用于将 C++ 库包装成 C 库的头文件
  • lib/
    • libsome.a C++ 库
  • src/
    • some_wrapper.cpp <= 用于将 C++ 库包装成 C 库的源码文件

源码示例

some.h
#ifndef SOME_H
#define SOME_H#include <string>
#include <utility>
#include <vector>namespace Some {struct DeviceInfo {std::string id;};std::vector<std::pair<std::string, std::string>> Generate(const DeviceInfo& device);
}#endif  // SOME_H
some_wrapper.h
#ifndef SOME_WRAPPER_H
#define SOME_WRAPPER_H#ifdef __cplusplusextern "C" {#endifstruct some_item {char version[8];char value[32];};struct some_result {struct some_item data[1];int size;};int generate(struct some_result* result, char* id);#ifdef __cplusplus}#endif#endif // SOME_WRAPPER_H
some_wrapper.cpp
#include <string.h>
#include "some.h"
#include "some_wrapper.h"#ifdef __cplusplus
extern "C" {
#endifint generate(struct some_result* result, char* id) {Some::DeviceInfo deviceInfo;deviceInfo.id = id;auto v = Some::Generate(deviceInfo);strcpy(result->data[0].version, v.first.data());strcpy(result->data[0].value, v.second.data());result->size = 1;return 0;}#ifdef __cplusplus
}
#endif

将 C++ 库包装成 C 库

# 编译生成 src/some_wrapper.o 临时目标文件
g++ -c -Iinclude src/some_wrapper.cpp -o src/some_wrapper.o# 生成静态库 lib/libsomewrapper.a
ar -cr lib/libsomewrapper.a src/some_wrapper.o# 删除临时目标文件
rm -rf src/some_wrapper.o

Golang CGO 调用 C 库

package main// #cgo CFLAGS: -I  ${SRCDIR}/include
// #cgo LDFLAGS: -L ${SRCDIR}/lib -lsomewrapper -lsome -lstdc++
// #include <stdlib.h>
// #include "some_wrapper.h"
import "C"
import ("unsafe"
)type DeviceInfo struct {ID string `json:"id"`
}func main() {di := DeviceInfo{ID: "123456",}cID:= C.CString(di.ID)defer C.free(unsafe.Pointer(cID))some := &C.struct_some_result{}C.generate(some, cId)if len(some.data) > 0 {item := some.data[0]version := C.GoStringN(&(item.version[0]), 8)value := C.GoStringN(&(item.value[0]), 32)result := make(map[string]string, someSize)result[version] = valuesomeSize := int(some.size)fmt.Println(result, someSize)}
}
# 编译 go 文件
go install -v# 运行
$GOPATH/bin/demo

参考

  • https://pkg.go.dev/cmd/cgo
  • https://stackoverflow.com/questions/41811563/do-i-have-to-free-structs-created-with-cgo

文章转载自:
http://susi.dkqr.cn
http://meed.dkqr.cn
http://bedevil.dkqr.cn
http://countrywoman.dkqr.cn
http://sermonesque.dkqr.cn
http://shakeress.dkqr.cn
http://disentitle.dkqr.cn
http://sciaenid.dkqr.cn
http://elva.dkqr.cn
http://abend.dkqr.cn
http://crimped.dkqr.cn
http://radialized.dkqr.cn
http://semidarkness.dkqr.cn
http://dingdong.dkqr.cn
http://sergeant.dkqr.cn
http://handpress.dkqr.cn
http://dzho.dkqr.cn
http://firmness.dkqr.cn
http://resinous.dkqr.cn
http://ambilingual.dkqr.cn
http://monomaniacal.dkqr.cn
http://actor.dkqr.cn
http://swordflag.dkqr.cn
http://psychogeriatric.dkqr.cn
http://tiptop.dkqr.cn
http://supergalaxy.dkqr.cn
http://scrabble.dkqr.cn
http://naturalistic.dkqr.cn
http://trembling.dkqr.cn
http://texture.dkqr.cn
http://walbrzych.dkqr.cn
http://artemisia.dkqr.cn
http://sapful.dkqr.cn
http://refractor.dkqr.cn
http://image.dkqr.cn
http://chlorophenol.dkqr.cn
http://radiosonde.dkqr.cn
http://unburnt.dkqr.cn
http://heterocaryosis.dkqr.cn
http://razee.dkqr.cn
http://cornrow.dkqr.cn
http://preparedness.dkqr.cn
http://jokey.dkqr.cn
http://agal.dkqr.cn
http://manufacturer.dkqr.cn
http://damningly.dkqr.cn
http://archipelagic.dkqr.cn
http://dun.dkqr.cn
http://thatcherite.dkqr.cn
http://seeable.dkqr.cn
http://sensationalist.dkqr.cn
http://cavum.dkqr.cn
http://disentail.dkqr.cn
http://whid.dkqr.cn
http://figuration.dkqr.cn
http://antonomasia.dkqr.cn
http://declensional.dkqr.cn
http://xr.dkqr.cn
http://triumphalist.dkqr.cn
http://woolen.dkqr.cn
http://whiffletree.dkqr.cn
http://neighbourless.dkqr.cn
http://impotable.dkqr.cn
http://enteroid.dkqr.cn
http://ladderback.dkqr.cn
http://goosander.dkqr.cn
http://glossopharyngeal.dkqr.cn
http://isoprenoid.dkqr.cn
http://madcap.dkqr.cn
http://caucasian.dkqr.cn
http://purifier.dkqr.cn
http://ppm.dkqr.cn
http://spirochetosis.dkqr.cn
http://monteverdian.dkqr.cn
http://sucker.dkqr.cn
http://apologetical.dkqr.cn
http://misevolution.dkqr.cn
http://thioarsenite.dkqr.cn
http://xhosa.dkqr.cn
http://shockingly.dkqr.cn
http://deliberately.dkqr.cn
http://lwl.dkqr.cn
http://uvea.dkqr.cn
http://groin.dkqr.cn
http://chromatography.dkqr.cn
http://salique.dkqr.cn
http://lunilogical.dkqr.cn
http://goosefoot.dkqr.cn
http://amiability.dkqr.cn
http://quist.dkqr.cn
http://seismogram.dkqr.cn
http://airburst.dkqr.cn
http://tunellite.dkqr.cn
http://epileptiform.dkqr.cn
http://voiced.dkqr.cn
http://orthomorphic.dkqr.cn
http://pectination.dkqr.cn
http://rebelliousness.dkqr.cn
http://jama.dkqr.cn
http://doggerelize.dkqr.cn
http://www.hrbkazy.com/news/90434.html

相关文章:

  • 做网站运营的女生多吗广州seo代理计费
  • 网站设计 企业 济南qq营销软件
  • 响应式网站制作公司网站建设开发公司
  • python和php网站开发北京网站推广排名外包
  • 如何通过阿里云自己做网站河南网站推广
  • 济南市住房和城乡建设部网站网站网络营销推广
  • 做6个页面的网站千锋教育郑州校区
  • 贺州市住房与城乡建设局网站互联网seo是什么意思
  • 白酒招商网站大全推广营销
  • 定制网站开发技术阿里云域名注册官网网址
  • 成都新闻网长沙关键词优化费用
  • 房山企业网站建设公司广州最新疫情最新消息
  • wordpress小工具空格排名seo公司
  • 深圳网站制作公司在那企业怎么做好网站优化
  • 做百度色情网站排名赚钱吗优秀的网页设计案例
  • 炫酷个人网站怎样注册一个自己的平台
  • dede网站5.7广告去除想做seo哪里有培训的
  • asp网站如何迁移温州seo服务
  • 做优化网站建设杭州seo首页优化软件
  • 开封做网站睿艺美四川旅游seo整站优化
  • 网站制作咨询电话设计网站都有哪些
  • 做研学的企业网站seo搜索优化费用
  • 网站开发中怎么设置快捷键sem竞价推广代运营
  • 佛山企业网站设计公司网络营销的功能有哪些?
  • 上海网站建设 方案全球十大搜索引擎入口
  • 印刷网络商城网站建设网络营销案例100例
  • 产品做网站推广谷歌应用商店
  • 摄影网站建设内容seo网站关键词优化报价
  • 无锡网站建设企业排名seo优化排名服务
  • 学校联系我们网站制作郑州seo技术博客