我正在编写一个Data Aquisition应用程序,但我没有使用传统的无聊前端,而是负责将Web 2.0前端放在其上,我听说Node.js善于调用C ++代码,但是因为我到了我应该考虑将我的DLL链接到我的前端的阶段,我已经碰到了一堵砖墙。
我知道我可以在不使用诸如node-ffi之类的添加的情况下原生编写代码,但坦率地说,使用Google的V8语法执行这些绑定的语法似乎相当复杂,因此我和#39;猜测ffi是解决这个问题的最简单方法。
我知道之前已经提出了一个问题并且有一个答案here但是我仍然对如何编写垫片以允许我从节点调用我的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,这是否会导致管道下方出现问题?