当前位置: 首页 > 后端技术 > Node.js

通过edge.js调用C#动态链接库dll,我踩坑什么的

时间:2023-04-03 17:13:48 Node.js

使用edge.js调用.dll文件第二个补充:根据我个人的理解,edgejs是一个允许调用C#的库通过节点。只是因为最近项目需要才联系上的。使用npminit初始化项目,安装依靠edge,npminstall-gdedge.C#代码,经过编译之后生成了print.dll文件usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceprint{publicclassPrint{publicasyncTaskgetPrinter(Objectinput){String[]printers=(String[])input;字符串打印机="";字符串标签打印机="";字符串扫描器="";对于(inti=0;i(E:\workspace\Csharpworkspace\nodecs)处出错(本机)\index.js:3:23)在Module._compile(module.js:570:32)在Object.Module._extensions..js(module.js:579:10)在Module.load(module.js:487):32)在tryModuleLoad(module.js:446:12)在Function.Module._load(module.js:438:3)在Module.runMain(module.js:604:10)在运行(bootstrap_node.js:394:7)问题是什么?补充:我觉得可能是nod找不到.dll文件,所以加了varurl=require('url');varutil=require('util');以上是我之前发的问题。过了一段时间,我在另一位大神的博客上找到了答案和解决方法。在这里记下。大神的博客在这里http://www.cnblogs.com/sfcyyc...根据上面的博客,我的解决办法。///index.js文件代码varedge=require('edge');varinput=['Printer','TagPrinter','Scanner'];vargetPrinter=edge.func({assemblyFile:"E:/workspace/Csharpworkspace/nodecs/print.dll",typeName:"print.Print",methodName:"getPrinter"});getPrinter(input,function(err,result){如果(错误)抛出错误;console.log(结果);});这应该是可以实现的。根据你的具体情况,方法类似。[逃脱..]