/ Moduł / node-ffi nie może załadować 32-bitowego C dll - błąd dynamicznego łączenia - node.js, dll, 32-bit, dynamiczne łączenie, node-ffi

moduł node-ffi nie może załadować 32-bitowego dll C - błąd dynamicznego łączenia - node.js, dll, 32-bit, dynamiczne łączenie, node-ffi

Mam problem z próbą załadowania C 32-bitowej biblioteki DLL z modułem nodejs-ffi. Oto mój kod:

Podczas pracy węzeł generuje błąd w Dynanic_library.js: 74 Błąd dynamicznego łączenia

var ffi = require("ffi");
var ref = require("ref");
var path = require("path");

import idatabase = require("./IDatabase");
import idataset = require("./Dataset");

var dllpath = path.join(__dirname, "../../StoneBaseDLL.dll");
var dbpath = path.join(__dirname, "../../../database/metadata/metadata.db");

export class Stonebase implements idatabase.IDatabase
{
dbHandler;
dbConnection;

constructor() {

this.dbHandler = ffi.Library(dllpath, {
"connect": ["void*", ["string"]],
"Execute": ["void*", ["string", "void*"]],
"disconnect": ["void*", ["void*"]],
"EndOfResultSet": ["bool", ["void*"]],
"Next": ["void", ["void*"]],
"getNumberOfFields": ["int", ["void*"]],
"GetField_AsString": ["string", ["int", "void*"]],
"GetField_AsChar": ["string", ["int", "void*"]],
});

this.dbConnection = this.dbHandler.connect(dbpath);
}

execute(query: string) {
var data: Array<Array<string>>;
var columns: Array<string>;
data = [];
columns = [];
var i = 0;

var dset = this.dbHandler.Execute(query, this.dbConnection);

for (var j = 0; j < this.dbHandler.getNumberOfFields(dset); j++) {
columns[j] = "column" + j;
}

while (!this.dbHandler.EndOfResultSet(dset)) {
var line: Array<string>;
line = [];
for (var j = 0; j < this.dbHandler.getNumberOfFields(dset); j++) {
line[j] = (<string>this.dbHandler.GetField_AsChar(j, dset));
}
data[i] = line;

this.dbHandler.Next(dset);
i++;
}

return new idataset.Dataset(data, columns);
}

}

Używam Maszynopisu, ale jestem pewien, że to nie ma nic wspólnego z problemem

Dziękuję wam za pomoc!

Odpowiedzi:

0 dla odpowiedzi № 1

Czy sprawdziłeś, czy twój węzeł jest 32-bitowy? JEŻELI twój węzeł jest 64-bitowy, przełącz się na 32 i spróbuj ponownie.