【问题标题】:Air Native Extensions: Released Air App w/Windows Native Extension works fine on develpment PC but not on other computersAir Native Extensions:发布的带有 Windows Native Extension 的 Air 应用程序在开发 PC 上运行良好,但在其他计算机上却不行
【发布时间】:2015-08-23 08:11:12
【问题描述】:

我正在开发一个 AIR 应用程序,该应用程序使用我为同一项目开发的 Windows 原生扩展。该应用程序调用一个名为 pingFunction 的 ANE 方法,并向其传递一个字符串,其中包含 pingFunction 将执行 ping 测试的 IP 地址。

该应用程序及其 ANE 在 Flash Builder 上运行良好,即使在发布后,它们在开发 PC 上仍然像魅力一样运行。问题是我在另外两台计算机上尝试过,应用程序抛出以下错误:

ArgumentError: Error #3500: The extension context does not have a method with the name pingFunction. 
at flash.external::ExtensionContext/_call() 
at flash.external::ExtensionContext/call() 
at com.mycompanyname.myappname::MyAppName/sendPing()[...  

一开始我认为我使用的 DLL 是我使用 Visual Studio 上的 Debug 配置而不是 Release 配置编译的,因为我读到有时 DLL 的调试版本可以使用外部 DLL。因此,我对其进行了更改并将整个库重新构建为发布版本。对我来说可悲的是,我仍然遇到同样的结果。

另外,我尝试将 AIR 应用程序和 ANE 的 swf-version 更改为我正在使用的 AIR SDK 版本 (14.0),但又遇到了同样的错误。

开发计算机正在运行 Windows 8.1 和其他应用程序无法运行的计算机,Windows 7 和 Windows 7 Service Pack 1。

关于为什么会发生这种情况的任何想法?任何可能使我走上正轨的问题或 cmet 将不胜感激。

【问题讨论】:

  • Windows ANE 的 DLL 必须与应用程序 iirc 位于同一文件夹中。
  • @DodgerThud 嗨,“在同一个文件夹中”是什么意思?什么应该在同一个文件夹中?因为 ANE 应该从 libs forlder 链接,而应用程序的其余部分位于 source 文件夹中。
  • 我的意思是在您的安装位置,用户安装它的位置,特别是我相信的 .swf 所在的文件夹。至少我记得是这样,明天我会在办公室查找我自己的 Windows ANE。
  • @DodgerThud 谢谢。我会很感激的。但是ANE不应该由Flash Builder打包并自动安装吗?
  • 是的,这就是它“应该”工作的方式,但我记得 Windows ANE 有一些不同之处。虽然这可能是针对外部 DLL(例如,不是您自己制作的 DLL)。

标签: c++ actionscript-3 dll air ane


【解决方案1】:

Error#3500 即将到来,因为您没有在这些机器上安装所需的运行时,这是执行任何 c++ 代码所必需的。
在您的开发机器上,您安装了 Visual Studio,因此您也有 msvcr。

问题的解决方法是:

here 安装 msvcr,即 Microsoft Visual c++ 重新分发 - 2012。

你需要 msvcr 来运行任何 VS 编译的 c++ 代码。


【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多