节点崩溃从本机插件调用c#dll的方法

时间:2018-01-16 18:53:06

标签: javascript c# c++ node.js

我尝试使用简单的Hello World方法构建一个C#dll(.NET Framework 4)。这是代码:

using System;
namespace ClassLibrary1
{
    public class Class1
    {
        public static void Hello()
        {
            Console.WriteLine("Hello World");
        }
    }
}

然后我用C ++调用了这个dll。当我构建它时一切都很顺利但是,当我尝试从javascript调用hello方法时,终端没有输出任何内容。我这样做了:

Origine.cc:

#include <node.h>
#using <../ClassLibrary1.dll>

#pragma unmanaged

using namespace v8;
void Greet();
void Method(const FunctionCallbackInfo<Value>& args) {
  Isolate* isolate = args.GetIsolate();
  Greet();
  args.GetReturnValue().Set(Boolean::New(isolate, true));
}
void init(Local<Object> exports) {
  NODE_SET_METHOD(exports, "hello", Method);
}
NODE_MODULE(NODE_GYP_MODULE_NAME, init)

#pragma managed

void Greet(){
    ClassLibrary1::Class1::Hello();
}

binding.gyp

{
  "targets": [
  {
    "target_name": "addon",
    "sources": [ "Origine.cc" ],
    "msbuild_settings": {
      "ClCompile": {
        "CompileAsManaged": "true",
        "ExceptionHandling": "Async",
      }
    }
  }]
}

test.js

require ('./build/Release/addon').hello();

文件夹中的文件:

Origine.cc
binding.gyp
ClassLibrary1.dll
test.js

我使用的是Windows 10 64位,我使用的是Node 7.10.0 感谢任何帮助它的工作

0 个答案:

没有答案