我想在node.js中使用.net dll。这是否意味着我需要用c / c ++使用'clr hosting'来提供这些dll
它建议更改选项设置为“无公共语言运行库支持” 只为文件SharpAddon.cpp
添加将CLR支持启用(对于CLR项目的默认值),那么其他的.cpp-文件,这意味着实际上可以使用来自其他.cpp文件的.net dll。
这个问题实际上是在Node.js / serverside javascript中使用.NET DLL的一个副本,当时甚至没有一个本地的Windows节点端口,所以时间可能已经改变,尽管谷歌让我怀疑它。
发布于 2018-03-21 12:30:11
当binding.gyp
文件设置正确时,node-gyp可以自动执行下面的手动步骤。
事实证明,这很容易。在与CLR托管挣扎并在主机中获取数据一段时间后,事实证明,实际上为节点扩展启用/ clr没有问题(到目前为止)。就是这样:
我不得不改变的标志使它工作:
然后你可以像这样混合管理和非托管代码,引用你的.net dll。
#pragma managed
#using <managed.dll>
void callManaged()
{
managed::Class1^ c1 = gcnew managed::Class1();
System::String^ result = c1->Echo("hola");
System::Console::WriteLine("It works: " + result);
}
#pragma unmanaged
Handle<Value> Method(const Arguments& args) {
HandleScope scope;
callManaged();
return scope.Close(String::New("world"));
}
刚刚发现了一个简单的howto链接:http : //joseoncode.com/2012/04/10/writing-your-first-native-module-for-node-dot-js-on-windows/
发布于 2018-03-21 13:37:01
听起来像edge.js是iisnode作者的新答案:
Edge.js支持使用C#和.NET,而不是编写本地node.js扩展
https://stackoverflow.com/questions/-100007700
复制相似问题