//aardio 调用 Go 语言 - 调用 COM 接口 DLL import console.int; console.open(); //内存加载 DLL,请先编译 Go 代码生成 DLL var dll = raw.loadDll($"/dispDemo.dll",,"cdecl"); //aardio 对象转换为 COM 对象(COM 接口会自动转换,原生 DLL 接口要调用 com.ImplInterface ) import com; var disp = com.ImplInterface( //任意表对象或函数都可以转换为 COM 对象(IDispatch 接口对象) Add = function(a,b){ console.log("Add 函数被 Go 语言调用了"); return a + b; } ); //调用 Go 函数 var pDisp = dll.TestDispatchP(disp); //将 Go 函数返回的 IDispatch 指针转换为 COM 对象 var comObj = com.QueryObjectR(pDisp);//转换同时释放一次引用计数 //操作 COM 对象 comObj.Add("key","value"); comObj.Add("key2","value2"); //遍历 COM 对象 for index,key in com.each(comObj) { //输出字典的键值 console.log( key,comObj.Item(key) ) } console.log(ptr)