我尝试使用简单的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 感谢任何帮助它的工作