6

私のANEファイルの構造は次のようになります。

<META-INF>
    <ANE>
        <Windows-x86>
            ExtensionDll.dll
            DllUsedByExtensionDll.dll
        extension.xml
mimetype
catalog.xml
library.swf

ExtensionDll.dll が他の Dll の関数を使用する場合、拡張機能は読み込まれません。DllMain は呼び出されません。Air アプリケーションが拡張機能を使用して実行されている場合、DllUsedByExtensionDll.dll が Dll 検索パスにないようです。

追加の Dll を共通の Dll パスに配置したくない場合、アプリケーションに追加の Dll を検出させるにはどうすればよいですか?

4

2 に答える 2

7

私は同じ問題を抱えていて、これを数日間続けました。これを解決するには2つの方法があることがわかりました。

  1. DllUsedByExtensionDll.dll が実行可能ファイルと同じディレクトリにパッケージ化されていることを確認しながら、リリース ビルドをエクスポートします。
  2. デバッグの目的で、DllUsedByExtensionDll.dll を、Air Debug Launcher (adl)実行可能ファイルがある Adob​​e AIR SDK bin ディレクトリにコピーします。

構築している ANE に DllUsedByExtensionDll.dll をパッケージ化する必要はありません。

問題は、デバッガーの実行可能ファイルが AIR SDK にあるため、ExtensionDll.dll がデバッガーから起動されたときに DllUsedByExtensionDll.dll を見つけられないことです。ただし、リリース ビルドをエクスポートすると、アプリは実行可能ファイルになるため、ルート ディレクトリで dll を検索します。

これをデバッグして問題の詳細を確認する場合は、 adlコマンドを使用してコマンド ラインでアプリを実行することをお勧めします。

私の場合、Flash Builder のデバッグ/実行を実行すると、「コンピューターに dll が見つからないため、プログラムを開始できません」という Windows エラーが表示されませんでした。そして、それは私を長い間野生のガチョウの追跡に導きました.

于 2013-03-07T06:24:26.070 に答える
0

dll が他の dll を使用している場合は、その ANE ファイルを使用するプロジェクトに参照 dll を含めます。

于 2012-04-17T10:04:00.150 に答える