我的Nodejs应用程序在ubuntu中运行良好。当我试图在Windows机器上部署相同的程序时,它显示了下面的错误。
=>node server.js
D:\home\site\wwwroot
D:\home\site\wwwroot\node_modules\ffi\node_modules\bindings\bindings.js:83
throw e ^
Error: %1 is not a valid Win32 application.
D:\home\site\wwwroot\node_modules\ffi\no
我想从节点js加载一个dll文件。下面是头文件:
#pragma once
#ifdef __cplusplus
#define EXAMPLE __declspec(dllexport)
extern "C" {
EXAMPLE int Add(int, int);
}
#endif
在编译为中,我选择了“编译为C代码”
在active solution platform中,我选择x64
然后,我使用ffi模块加载它:
var ffi = require('ffi');
var Lib = ffi.Library('test',
如果直接使用Node.js,我可以获得正确的本机内存地址,例如:
// eg. native dll writen in rust; Of course, this part can be implemented in C or C++ or any others.
#[no_mangle]
pub unsafe extern fn example_concat(
a: *const c_char,
b: *const c_char
) -> *mut c_char
{
let sa = CStr::from_ptr(a).to_str().expect("canno
我在Windows10 x64上安装了nodejs x86,我使用这个npm i -g electron安装了带有npm的电子,并有一个用于驱动外部设备的.dll文件。
我正在使用电子开发桌面应用程序。
我寻找了一种从js中调用dll函数的方法,我找到了ffi包。首先,我安装了node x64,但是我遇到了这个错误
App threw an error during load Error: %1 is not a valid Win32 application.
然后我搜索了一下,在github上找到了这个。
我卸载了我的nodejs,并将其替换为x86版本,但此错误仍然存在于我的项目中。似乎
我有一个callerID设备,所以我必须使用它的动态链接库。我之前安装了ffi-napi,并在Windows DLL(User32)上测试了它。然后它工作了,但对于设备的dll,我必须将节点设为32位,因为dll也是32位的。然后所有的问题都开始了。我搜索了一下,发现我必须先安装node-gyp,然后再安装ffi-napi包。下面的代码显示了在没有node-gyp配置的情况下尝试安装ffi-napi时出现的错误。我已经下载了用于node-gyp的Visual Studio及其组件。
gyp ERR! find VS
gyp ERR! find VS msvs_version was set f
有一个名为的库,它承诺允许用户加载系统本机库并调用它们中的函数。
通过他们的例子,我尝试使用位于User32.dll中的函数:
var ref = require('ref');
var ffi = require('ffi');
var Struct = require('ref-struct');
// Define Winapi types according to
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.asp
我有一个C函数,它接受回调并在另一个线程上调用它:
void call_in_new_thread(void (*callback)()) {
// spawn a new thread and call `callback` in it ...
}
我想通过Node从JavaScript调用这个函数,并将一个JavaScript函数传递给它:
var callbackType = 'pointer'
var lib = ffi.Library('mylib', {
'call_in_new_thread': [ 'voi
我得到以下错误在自动启动(在Regedit中运行条目自动启动)应用程序后,重新启动或停止自动启动和手动启动,然后它的工作文件。
误差
No native build was found for platform=win 32
loaded from: C:\WINDOWS\System32\node_modules\ffi-napi\node_modules\ref-napi.
这里,实际的预构建路径是安装dir,即%APPDATA%/appname/node_modules,但它第一次采用C:\WINDOWS\System32\node_modules。
我比较了这两个进程,我只发现两者的区
我正在尝试使用node包装c代码。但是一个c函数在一个参数中调用一个函数,我在web上搜索,但是我没有找到任何正确的方法来使用节点-ffi包装相同的函数。
这是我之前尝试过的(片段),
example.js
var intPin = 40;
var state = 0;
var lib = require('./c_functions');
lib.c_functions.attachInterrupt(intPin,abc); //attachInterrupt is a c function and **Problem 1**
function abc(){
co