golang C相互调用带参数

前端之家收集整理的这篇文章主要介绍了golang C相互调用带参数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

test.h

#ifndef __TEST_H__ @H_301_5@#define@H_301_5@ __TEST_H__

void@H_301_5@ SetFunc(char@H_301_5@* str); @H_301_5@extern@H_301_5@ void@H_301_5@ InternalFunc(char@H_301_5@* str); @H_301_5@#endif@H_301_5@

test.c

#include "@H_301_5@test.h@H_301_5@"@H_301_5@

void@H_301_5@ SetFunc(char@H_301_5@* str) { InternalFunc(str); }@H_301_5@

test.go

package main @H_301_5@//@H_301_5@ #include "test.h"@H_301_5@
import "@H_301_5@C@H_301_5@"@H_301_5@ import @H_301_5@"@H_301_5@fmt@H_301_5@"@H_301_5@

var@H_301_5@ function func(str *C.char@H_301_5@) @H_301_5@//@H_301_5@export InternalFunc@H_301_5@
func InternalFunc(str *C.char@H_301_5@) { function(str) } func Register(fnct func(str @H_301_5@*C.char@H_301_5@)) { function @H_301_5@= fnct cs :@H_301_5@= C.CString("@H_301_5@aaaaaaaaaaa@H_301_5@"@H_301_5@) C.SetFunc(cs) } func test(str @H_301_5@*C.char@H_301_5@) { fmt.Println(@H_301_5@"@H_301_5@How should I do it@H_301_5@"@H_301_5@,C.GoString(str)) } func main() { Register(test) }@H_301_5@
原文链接:https://www.f2er.com/go/189622.html

猜你在找的Go相关文章