node.js — Как вызвать код на C ++, используя Node ffi

Я пишу приложение Data Aquisition, но вместо традиционного скучного интерфейса мне было поручено добавить интерфейс Web 2.0, я услышал, что Node.js хорош для вызова кода C ++, но с тех пор как этап, на котором я должен был подумать о связывании моей DLL с моим веб-интерфейсом, я попал в кирпичную стену.

Я знаю, что мог бы написать код изначально без использования надстройки, такой как node-ffi, но, честно говоря, синтаксис для выполнения этих привязок с помощью синтаксиса Google V8 казался довольно сложным, поэтому я предполагаю, что ffi — самый простой способ справиться с этим.

Я знаю, что предварительно вопрос был задан ранее и имеет ответ Вот но я все еще немного неуверен в том, как написать шим, чтобы позволить мне вызывать мою C ++ dll с узла.

У меня есть следующий заголовок C ++:

#include "NIDAQmx.h"#include <string>
using std::string;
namespace DAQReaderDll
{
class DAQReader
{
private:
int32      m_read;
int32      m_error;
TaskHandle m_handle;
bool       m_isRunning;
char       m_errBuff[2048];

public:
__declspec(dllexport) DAQReader();
__declspec(dllexport) ~DAQReader();
__declspec(dllexport) void startDevice();
__declspec(dllexport) void stopDevice();
__declspec(dllexport) float32 getSample();
__declspec(dllexport) bool    isRunning();
__declspec(dllexport) string  getError();

};

// Used inside the DLL
int SAMPLE_SIZE = 1000;
int READ_SPEED  = 1000;
int AS_PSI      = 2980;
}

Я предполагаю, что мне не нужно предоставлять детали реализации моего файла .cpp, но я хочу знать, как я могу сделать эти методы видимыми для node.js и как я могу обернуть их в node-ffi?

Я также обеспокоен тем, что у меня могут быть проблемы с подключением этого dll к внешнему интерфейсу, так как мой .dll имеет зависимость от NIDAQmx .dll, это вызовет проблемы дальше по конвейеру?

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]