2014-09-29 3 views
1

nodejs-ffi 모듈과 함께 C 32 비트 DLL을로드하는 데 문제가 있습니다.node-ffi 모듈이 32 비트 C DLL을로드하지 못했습니다 - 동적 연결 오류

실행, 노드가 Dynanic_library.js에 오류가 발생합니다 : 이것은 내 코드 74 동적 링크 오류

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); 
    } 

} 

내가 타이프 라이터를 사용하고는 있지만이는 함께 할 수 없다 확신 해요 문제

도움을 주셔서 감사합니다.

답변

0

노드가 32 비트인지 확인 했습니까? 노드가 64 비트이면 32로 전환하고 다시 시도하십시오.

관련 문제