0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows 64bit Electronと32bit C言語DLLの共存(その2)

0
Posted at

前回の記事の続編です。ffi-napiサーバー側を改良いたしました。

改良点

(1)HTTP-GETメソッドを実装して、簡易Webサーバー化した。
(2)1カ月・2カ月とかの長期運転になると、NodeJS v16 で組んだ ffi-napiサーバーはクラッシュする可能性があるので、死活監視コマンドを設けて、クラッシュリカバリするようにした。
(3)クラッシュリカバリした際、クライアントのElectron側がDLL関数呼出APIのNGステータスコードから、それを判断出来るようにした。これで、クライアントのElectron側が、周辺装置の再初期化シーケンスを実行出来るようになる。

想定する利用シーン

シーン1

シーン1は前回の記事で想定したシーン
localhost
628009279-c960dbf0-58f2-4a81-9a17-c20e628c2a81.jpg

シーン2

クライアントをChrome等の通常のブラウザとする想定です。
localhost
628010035-83c21b37-2049-4781-9cea-d6431fb4fe5f.jpg

ffi-napiサーバーのフォルダー構成

通常のWebサーバーと異なる点は、Webドキュメントの配置を htdocsフォルダ配下としただけではなく、404 Not Foundとなったときに、htdocs.zipファイルを探索するようにした事です。

その号機固有のHTMLなどを htdocsフォルダに配置しておき、いくつかある号機で共通したWebドキュメントは htdocs.zipを参照するようにしました。リソースの配布の手間が少しでも減るかもしれません。
sys5.jpg

github

ソースコードはこちらです。

$ git clone https://github.com/yoike123/ffi_honji.git

今後の展開

次の3案を考えております。
(1)クライアントのElectron側のデモを充実。
(2)ffi-napiサーバーにsqlite3関連のAPIを実装する。
(3)ffi-napiサーバーをC言語で記述する(バイナリ提供)
その他、リクエストがございましたら、コメント頂けると、励みになります。
レガシー32bit DLLの資産を生かしつつ、64bit化の波に乗れればと思っております。

ご参考

POS端末をChromeで動かすことについては、JSONプロトコルが違うことと、ffiサーバーをCで記述した構成で、2025年12月に納品して稼働している実績があります。企業秘密のため、ソースコードは開示できませんが、次のようなシステム構成でした。

レジャー施設向けの券売機

localhost
sys4.jpg

POS端末を一般のブラウザーで書くことに興味をお持ちの方はお問い合わせ下さい。技術提携いたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?