Eug*_*sky 16 .net c# c++ visual-c++ node.js
我想在node.js中使用.net dlls.这是否意味着我需要使用'clr hosting',一个la来使用c/c ++制作这些dll
不幸的是,在github上创建一个nodejs native .Net扩展的例子有点令人失望,只需向下滚动到最后一步
将"公共语言运行时支持"选项更改为"无公共语言运行时支持"
而且你知道我的意思.更正做到这一点的文章正义:它建议更改选项设置为"无公共语言运行库支持" 只为文件SharpAddon.cpp添加将CLR支持启用(对于CLR项目的默认值),那么其他的.cpp-文件,这意味着事实上你可以从其他.cpp文件中使用.net dll.
这个问题实际上是在Node.js/serverside javascript中使用.NET DLL的重复,它是在甚至没有本地Windows节点端口的时候编写的,所以时间可能已经改变,尽管谷歌让我怀疑它.
Eug*_*sky 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"));
}
Run Code Online (Sandbox Code Playgroud)
更新刚刚发现此链接的简单方法:http://joseoncode.com/2012/04/10/writing-your-first-native-module-for-node-dot-js-on-windows/
| 归档时间: |
|
| 查看次数: |
6835 次 |
| 最近记录: |