2017-06-28 19 views
0

私はWindows 10 x64上にnodejs x86を持っており、このnpm i -g electronを使ってnpmで電子をインストールし、外部デバイスを駆動するための.dllファイルを持っています。nodejs - ffiで電子を使用する

私はデスクトップアプリケーションを開発するために電子を使用しています。

私はjsからdll関数を呼び出す方法を見つけるために検索し、ffiパッケージを見つけました。最初の場所で、私はそれを検索し、私はgithubの上でこのissueを見つけた私は、ノードのx64をインストールしますが、私はこのエラー

App threw an error during load Error: %1 is not a valid Win32 application.

に直面していました。

私のnodejsをアンインストールしてx86版に置き換えましたが、このエラーは私のプロジェクトに残っています。 npm npm i ffiでffiをインストールすると、npmはソースファイルをダウンロードし、ホストアーキテクチャ(x64)でコンパイルしてからx64モードでビジュアルスタジオ2015で自己コンパイルするように見えます。 私はnpm i ffi --arch=ia32でffiをインストールしようとしていますが、動作しませんでした。 私はdllソースファイルを持っていないので、特定のアーキテクチャ用に再構築することはできません。

どのように電子32bit版をffi 32bitで使用できますか?

ffiプレビルドバージョンをダウンロードしてプロジェクトに添付する方法はありますか?

電子版(x64およびx86)を使用し、同じ32ビットdllを使用したいと考えています。

+0

64ビットは32ビットdllを処理できます。このエラーは、ファイルパスにスペースがある場合に発生します。だからC:\ Program Files \ ...はエラーを投げます。お役に立てれば。他の同じ問題はhttps://github.com/node-ffi/node-ffi/issues/258 https://github.com/node-ffi/node-ffi/issues/168とhttps:// githubです。 com/mapbox/node-sqlite3/issues/267 –

+0

私はnodejsのインストールパスを変更するのですか?私のプロジェクトパスにスペースはありません。 – COP

+0

nodejsのインストールパスは問題ありません。しかし、ホワイトスペースのない.dllへの道を試してみてください。 –

答えて

0

通常、エラーは、32ビットアプリケーションから64ビットのDLLをロードしようとすると発生します。

多くの場合、electron-rebuildは正しい環境のモジュールを再構築することでこの問題を解決します。

関連する問題