aardio 文档
aardio 范例:原生数组
//原生数组
import console;
import tcc;
var c = tcc();
c.code = /***
#include <stdlib.h>
__declspec(dllexport) void getArray(unsigned int a[],unsigned int b[] )
{
b[0] = a[1];
b[1] = a[0];
}
***/
c.output( "/getArray.dll" ); //生成DLL
//加载生成的 DLL,默认调用约定 cdecl
var dll = raw.loadDll( "/getArray.dll",,"cdecl" );
//方法一:免声明调用 C 函数,结构体为输出参数( 增加到返回值 )
var ret,a,b = dll.getArray(
//原生数组必须放到结构体里,结构体参数总是传址(这里指数组地址)
//原生数组相关文档: https://www.aardio.com/zh-cn/doc/library-guide/builtin/raw/struct#array
{ INT a[] = {123,456}},
//注意 aardio 中以大写 INT 表示无符号数,小写 int 表示有符号数(可表示负数)
{ INT b[2] = {} }
);
//输出结果
console.dumpTable(b);
//方法二:声明 API
var getArray = dll.api("getArray","void(struct a,struct &b)");
//仅声明了一个输出参数,只有一个返回值
var b = getArray(
{ INT a[] = {123,456}},
{ INT b[2] = {} }
);
//输出结果
console.dumpTable(b);
console.pause();
Markdown 格式