1

基本的なrequireを持つモジュールが必要です:

  require "luatorrent"

Windows 8/7/Vista の 32 ビットおよび 64 ビット バージョンではすべて正常に動作しますが、XP でプロジェクトを実行すると、次のエラーが発生します。

ここに画像の説明を入力

質問は次のとおりです。

A: Lua 5.1 やその他のファイルとまったく同じ問題であるにも関わらず、なぜこの問題が XP 固有のものであると思われるのか、わかる人はいますか?

B: これがモジュールを再コンパイルせずに修正できない場合、それは古くてソースがないため私にはできません。その後、何らかの方法で require を実行し、ロードされている場合は true/false を取得して、「if」を実行できますか?スローされたエラーがコードを壊し、アプリケーションが続行しないため、モジュールの関数のロードを続行するステートメント?

4

2 に答える 2

3

package.loadersのLuaリファレンスマニュアルのエントリを見てください。

最初のローダーはあなたの中にDLLを見つけ、package.pathそれをDLLとしてロードしようとします。表示されるエラーメッセージで失敗します。したがって、Luaは通常、でDLLを検索するDLLローダーを使用しますpackage.cpath。私はあなたのファイルがちょうどにないことを推測しますcpath。または、DLLローダーが見つからない可能性があります。かどうかを確認します#package.loaders != 4

デバッグのために、低レベルpackage.loadlib関数を介してDLLをロードすることもできます(funcnameはである必要があります"luaopen_luatorrent")。

私の頭に浮かぶもう1つの理由は、DLLが64ビットであるのに対し、XPは32ビットであるということです。しかし、この場合、エラーメッセージは異なって見えると思います。

于 2013-03-04T16:23:34.597 に答える
1

助けてくれてありがとう、このモジュールが機能するには、libeay32.dllがsystem32またはモジュールと同じフォルダーにある必要があることがわかりました。

于 2013-03-04T22:22:32.850 に答える