【问题标题】:How to call function EnumPrinters from node-ffi?如何从 node-ffi 调用函数 EnumPrinters?
【发布时间】:2014-01-27 09:52:23
【问题描述】:

根据 MSDN,函数 EnumPrinters 是 Winspool 库的一部分:
库 - Winspool.lib
DLL - Winspool.drv
http://msdn.microsoft.com/en-us/library/windows/desktop/dd162692(v=vs.85).aspx

但是没有 Winspool.dll。

我尝试使用以下代码在 javascript 中创建库:

var lib_test = new FFI.Library('Winspool', {
   'EnumPrinters': [ 'bool', [ ] ]
});

但出现以下错误:

D:\print\ffi\node_modules\ffi\lib\dynamic_library.js:74
    throw new Error('Dynamic Linking Error: ' + err)
          ^
Error: Dynamic Linking Error: "Winspool.dll": The specified module could not be found.
    at new DynamicLibrary (D:\print\ffi\node_modules\ffi\lib\dynamic_library.js:74:11)

【问题讨论】:

  • @user15 1. 我无法在生产环境中重命名 dll。 2. 它在我的电脑上没有帮助。
  • 你可以直接下载这个文件并将它放在你的生产环境中吗?用你的代码在目录中说?
  • @user15 不,我不能。我只能使用典型 Windows 环境中已经存在的 dll。

标签: javascript node.js printing node-ffi


【解决方案1】:

也许尝试像这样指定winspool的完整路径

var lib_test = new FFI.Library('C:\Windows\System32\winspool.dll', {
    'EnumPrinters': [ 'bool', [ ] ]
});

您可能需要将 winspool.drv 重命名为 winspool.dll。

【讨论】:

    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2018-01-14
    • 2019-02-05
    • 2019-09-29
    相关资源
    最近更新 更多