aardio 文档

aardio 范例: 调用 Go 语言 - 结构体操作

//aardio 调用 Go 语言 - 结构体操作 
import console.int;
import golang; 
var go = golang();

go.main = /**********
package main

import "C"
import "unsafe"
import "fmt"

//声明结构体
type Point struct { 
  x    int  
  y    int   
}

//export SetPoint 
func SetPoint(p uintptr) {  

    // aardio 结构体转换为 Go 结构体
    point := (*Point)(unsafe.Pointer(p)) 
    point.x = 1
    point.y = 2  

    /*
    Go 用 fmt.Println 打印变量很方便,可传入多个任意类型的参数。
    */
    fmt.Println( "在 Go 中打印结构体:",point );
}

func main() {} 
**********/

go.buildShared("/.go/TestStruct.go");

//------------------下面调用 DLL----------------------- 

var goDll = raw.loadDll("/.go/TestStruct.dll",,"cdecl");

//声明结构体 
class Point {
    int x;
    int y;
}

//创建结构体
var point = Point();

//调用 Go 函数,传结构体(结构体总是传址)
goDll.SetPoint(point);

//打印结构体
console.dumpJson(point); 

//结构体就是表(table),也可以这样直接写
goDll.SetPoint({
    int x = 1;
    int y = 2;
});

Markdown 格式