6

我的 ANE 文件的结构如下所示:

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

如果 ExtensionDll.dll 使用其他 Dll 中的函数,则不会加载扩展。不调用 DllMain。当空中应用程序使用扩展正在运行时,似乎 DllUsedByExtensionDll.dll 不在 Dll 搜索路径中。

如果我不想将它们放入一些常见的 Dll 路径中,我应该如何让应用程序找到额外的 Dll?

4

2 回答 2

7

我遇到了同样的问题,并且在这个问题上做了几天。原来有两种方法可以解决这个问题。

  1. 导出发布版本,同时确保 DllUsedByExtensionDll.dll 与可执行文件打包在同一目录中。
  2. 出于调试目的,请将 DllUsedByExtensionDll.dll 复制到您的 Adob​​e AIR SDK bin 目录中,Air Debug Launcher (adl)可执行文件所在的位置。

您不需要将 DllUsedByExtensionDll.dll 打包到您正在构建的 ANE 中。

问题是 ExtensionDll.dll 在从调试器启动时找不到 DllUsedByExtensionDll.dll,因为调试器的可执行文件位于 AIR SDK 中。但是,一旦您导出发布版本,您的应用程序就是可执行文件,因此现在它会在其根目录中查找 dll。

如果您想对此进行调试以了解有关可能出现问题的更多信息,我建议您使用adl命令通过命令行运行您的应用程序。

对我来说,通过 Flash Builder 的调试/运行运行意味着我看不到 Windows 错误“程序无法启动,因为您的计算机中缺少 dll”。这使我长时间追逐野鹅。

于 2013-03-07T06:24:26.070 回答
0

如果您的 dll 正在使用其他 dll,则在您要使用该 ANE 文件的项目中包含参考 dll。

于 2012-04-17T10:04:00.150 回答