我尝试学习如何使用edge(一个node.js模块)来绑定(bind)预编译的DLL,但它不能以正确的方式工作......
我的 DLL 是一个非常简单的库,并且已经在其他 .Net 程序中进行了多次测试。 我在 Jscript.Net 中编写了 DLL 文件:
import System;
import System.Console;
import System.IO;
package power{
public class testp {
function hello (){
var time_1 = DateTime.Now;
for (var i =0; i<10000; i++){
Console.WriteLine ("hello world!");
};
var time_2 = DateTime.Now;
Console.WriteLine (time_2-time_1);
};
};
};
很简单,Hello()方法会在stdout中打印出10000个“hello world”;
我可以通过执行以下操作在其他 Jscript.net 程序中调用它:
import System;
import System.Console;
import System.IO;
import power;
var pri = new testp;
pri.hello();
根据官网,我尝试过:
var edge = require("edge");
var clrMethod = edge.func({
assemblyFile: 'power.dll',
typeName: 'power.testp',
methodName: 'hello'
});
clrMethod();
我的问题: 我怎样才能在edge中成功调用它?
最佳答案
据我所知,Edge.js 不支持 JScript.NET。至少文档中没有提及它。
你试过吗the example in C# ?问题在于 Edge.js 要求 DLL 中导出的方法必须具有特定的签名:
Func<object,Task<object>>
当然,您的 DLL 没有导出具有正确签名的函数,这就是它没有按您预期工作的原因。
关于.net - 在node js中使用edge绑定(bind)DLL库不成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23252163/