zoukankan      html  css  js  c++  java
  • golang C相互调用带参数

    test.h

    #ifndef __TEST_H__
    #define __TEST_H__
    
    void SetFunc(char* str);
    extern void InternalFunc(char* str);
    
    #endif

    test.c

    #include "test.h"
    
    void SetFunc(char* str)
    { 
        InternalFunc(str);
    }

    test.go

    package main
    
    // #include "test.h"
    import "C"
    
    import "fmt"
    
    var function func(str *C.char)
    
    //export InternalFunc
    func InternalFunc(str *C.char) {
        function(str)
    }
    
    func Register(fnct func(str *C.char)) {
        function = fnct
        cs := C.CString("aaaaaaaaaaa")
        C.SetFunc(cs)
    }
    
    func test(str *C.char) {
        fmt.Println("How should I do it", C.GoString(str))
    }
    
    func main() {
        Register(test)
    }

  • 相关阅读:
    2-7
    2-6
    2-5
    2-4
    2-3
    2-1
    2-2
    1-1
    5-7
    第六章例6-1
  • 原文地址:https://www.cnblogs.com/mokliu/p/5547505.html
Copyright © 2011-2022 走看看