我已使用REGASM注册了.NET DLL,注册成功。我能够创建类的对象并在我的Javascript中使用它们。我消耗的类是非静态类。
这就是我正在使用的方式,它正在发挥作用,
var objDP = new ActiveXObject("PE.Core.PacketExtractor");
objDP.PrintMessage();
objDP.Start();
我的问题:
我在C#类中有一个方法,我想调用它并获取值。方法签名如下,
签名:Get_Current_Faults(ref PEFaults my_faults);
用法:Get_Current_Faults(my_faults);
在这种方法中,“PEFaults”是一个公共C#Struct。这也是COM Visible并注册,因为我可以在注册表中看到一个条目。
我尝试通过执行以下操作来获取JavaScript中的数据,
var objFault = new ActiveXObject("PE.Core.PE_FAULTS");
objDP.Get_Current_Faults(ref objFault);
WScript.echo(objFault.Temperature);
但是这不起作用并且给出错误“Automation Server无法创建对象”@ PE.Core.CURRENT_FAULTS对象创建。
我们不能在JS中创建Struct的对象吗?知道如何处理ref参数吗?我怎么能做这个工作?
请告诉我。感谢。