nodejs呼び出しc++dll感想
8352 ワード
この数日間苦労しましたが、ついに解決しました.nodejsがc+dllを呼び出した問題は、思い出してみるといくつかの難しい点があります.1:関数パラメータ、タイプは以下の通りです.unsigned shart 0=args[0]-.Uint 32 Value().他の整数タイプは、args[0]->ToString()String::NewFroomUtf 8(isolate)//stringタイプを作成します.
全体コードは以下の通りです.
Local<Object> obj = Object::New(isolate);
obj->Set(String::NewFromUtf8(isolate, "re"), num);
obj->Set(String::NewFromUtf8(isolate, "handle"), handle);
Local<Array> arr = Array::New(isolate, MAX_AXIS );
for (int i = 0; i < MAX_AXIS; ++i)
{
arr->Set(i, Number::New(isolate, dta.data[i]) );
}
obj->Set(String::NewFromUtf8(isolate, "data"), arr);
args.GetReturnValue().Set(obj);
コードに構成されているstringタイプは外部からの呼び出しに使用されます.全体コードは以下の通りです.
// cnc_resetconnect.cc
#include
#include
#include
#include
namespace demo {
using v8::FunctionCallbackInfo;
using v8::Isolate;
using v8::Local;
using v8::Object;
using v8::String;
using v8::Value;
using v8::Number;
using v8::Uint32;
using v8::Integer;
using v8::Exception;
using v8::Array;
#define MAX_AXIS 48
typedef struct odbaxis {
short dummy; /* dummy */
short type; /* axis number */
long data[MAX_AXIS]; /* data value */
} ODBAXIS;
void GetOdbaxis(short value, ODBAXIS dta, Isolate* isolate, Local