使用nodejs服务器

时间:2016-09-23 22:44:00

标签: c fingerprint node-ffi

我已成功采用生物度量标准打印并使用futronic sdk发布到节点服务器。我希望能够同样使用此库在服务器中进行匹配,因为这是存储所有用户的生物度量标准打印的位置。我查了node-ffi库,它帮助定义我导出的等效C函数并将其编译为.dll文件。

现在的挑战是我尝试移植ftrAnsiSDK函数,但ftrScanAPI.dllftrAnsiSDK.dll文件无法编译在一起。它给出了这个错误:

...collect2.exe [Error] ld returned 5 exit status

当我编译和导出不依赖于这两个库的函数时,我的代码工作正常,并且可以在节点服务器中轻松导出和使用这些函数。请任何人给我一个暗示吗?

这是link to the repo。它由已使用的lib和.dll库组成。

对于服务器代码,这里是我想要实现的代码片段:

var libm = ffi.Library('lib/visystem', {
'HelloWorld': [ 'void', [] ],
'PrintErrorMessage': [ 'void', ['int'] ],
'CaprureImage': [ 'int', ['int','int','int'] ]});

HelloWordPrintErrorMessages是我用作测试用例的方法,以确保在我继续执行主函数之前导出函数(可以从代码中看到函数定义) repo ..)取决于futronic lin and sdk

我目前正在使用64位操作系统,我在32位机器上安装了相同的程序,但是它仍然没有编译和导出该功能。我使用的代码编辑器是Dev ++ C.

任何人都可以帮助甚至暗示如何实现这一目标吗?

1 个答案:

答案 0 :(得分:0)

作为免责声明,我不熟悉Dev-C ++ IDE或MinGW开发。

但是,粗略地看一下你的github repo之后,根据你的 libvisystem.def 文件,看来你的DLL导出的唯一函数是:

  • 的HelloWorld
  • PrintErrorMessage
  • ReadTemplateFile
  • SaveBmpFile
  • SaveTemplateFile

在查看 libvisystem.a 库标题时也会确认:

enter image description here

因此,您应该首先将 dll.h 中的其余导出函数手动添加到def文件中,方式与已存在的函数类似,然后查看是否存在改变了一切。

注意:

我不确定Dev-C ++编译器/链接器是否忽略 __ declspec(dllexport)指令,而是使用def文件。也许SO上的其他人有一个想法。