こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

異なる複数の言語から共通モジュールを呼び出す方法

4つの独立したサーバで、それぞれ異なる言語で記述されたシステムが1つずつ稼動しています。例えばC++、Java、PHP、Rubyとします。

これら4つのシステムに同一の機能追加を行いたいと考えているのですが、4つの言語でそれぞれプログラムを作成するのは大変なので、何とか1つで済ませることは出来ないかとやり方を探っています。

例えばCで「myCommon.dll(またはmyCommon.so)」という共通モジュールを作成したとして、C++、Java、PHP、Rubyで稼動している各システムからこの共通モジュールを呼び出す方法はあるのでしょうか?(共通モジュールは各サーバに1つずつ配置する予定です。ネットワーク越しに実行するわけではありません。)

一応、共通モジュールを実行形式にして、各システムからexec関数などを使用して呼び出すことは出来るようなのですが、共通処理を実行形式で置いておくのが何となく気持ち悪いのと、関数が複数定義してある場合にコマンドラインオプションで処理を振り分けないといけなくなるため、スマートなやり方では無いのではないかと感じています。

理想的なのは、共通モジュールに定義された関数を、それぞれの言語でネイティブな関数のように呼び出せることなのですが・・・。

このように複数の言語から呼び出されるような共通処理を作成する場合、「常套手段」のようなものはあるのでしょうか?

投稿日時 - 2011-12-14 14:59:53

QNo.7189426

困ってます

質問者が選んだベストアンサー

私の常套手段はSWIGですが、
Cで書いたライブラリの引数の順序そのままで動作します。言語によってデータの扱いなどは違いますが、その辺りはうまくやってくれます。
http://www.swig.org/

投稿日時 - 2011-12-14 17:42:43

お礼

ざっと見た感じですが、よさそうですね。
とりあえず望んだことはできそうです。

ありがとうございました。

投稿日時 - 2011-12-14 21:07:15

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問