2011-12-27 26 views
1

私は開発環境をActiveState Perl 5.6.0からStrawberry Perl 5.12に切り替える予定ですが、私は1つのモジュールに固執しています。Perl 5.12ローディングモジュールでPerl 5.6用に作成されたDLL

私たちは独自のモジュールを作成しました。このモジュールには、パフォーマンス上の理由からdllも含まれています。今度は、Perl 5.6.0用にコンパイルされたモジュールです。問題は、私たちはもうソースコードを持っていませんが、新しいPerlバージョンで何とかそのモジュールを動作させる必要があるということです。

このモジュールをperl 5.12用に再コンパイルしなくても、これを行う機会はありますか?

ロードしようとすると、必要なDLLが見つからないと言われますが、パスは正しく、ファイルはそこにあるので、バージョンの読み込みに問題があるようです。

TIA パトリック

+0

詳細情報が必要です。このPerlモジュールはどのようにDLLを使用していますか? DLLを使用するPerlモジュールはありますか?正確なエラーメッセージを入力してください。 – Zaid

+0

@Zaid、彼はコンパイルされたXSコード(コンパイルされたモジュール)について話しています。 – ikegami

+0

新しいバージョンのPerl用にコンパイルする必要があります。それはあなたがそれを書き直さなければならないことを意味します。本当にそれの周りに良い方法はありません。 –

答えて

4

いいえPerlのライブラリは、メジャーバージョン間のバイナリ互換性を維持するために保証されていない、と5.6用にコンパイル何かは、Perl 5.12ライブラリとバイナリ互換ではありません。そのモジュールをロードする唯一の方法は、Perl 5.6が何らかの形で関係しているかどうかです。

+0

そうですね。私は実際にこのモジュールのPerl専用バージョンを見つけました。このモジュールには、いくつかのパフォーマンス上の問題があります(それは.dll拡張perlモジュールが最初に生成された理由です)。それは動作しますが、パフォーマンスはcgiで鈍いですが、私たちがfcgiに切り替えるとより良くなるはずです。 – PWFraley

関連する問題