在 AIR 本机扩展中包含库会导致错误,"The extension context does not have a method with the name..."适用于所有方法
Including library in AIR Native Extension causes the error, "The extension context does not have a method with the name..." for all methods
我正在为Windows桌面开发AIR本机扩展(ANE)。 此扩展的要点是能够调用第三方 C 库,该库由两个定义方法签名/typedefs 的 .h 文件和一个 .lib 文件组成。
在将第三方库包含在项目之前,我首先通过在 dll 中使用简单的"sayHello"函数构建 ANE 来确认我正确设置了所有内容,该函数只是创建并返回一个字符串。
在验证我可以从我的 AIR 应用程序调用 sayHello 并获得响应后,我继续添加一个初始化第三方库的函数。这就是事情横盘整理的地方。 我的dll编译得很好,我能够打包ANE而不会出错,但是当我尝试从AIR调用任何ANE函数时,我收到以下错误:
"The extension context does not have a method with the name
..."
在 AIR 中,对 createExtensionContext()
的调用成功并返回一个 ExtensionContext 对象,但我无法调用任何本机函数。 更重要的是,Visual Studio 的调试器不再为我的 dll 加载符号 - dll 不会出现在模块窗口中,我无法在本机代码中设置断点。
如果我注释掉调用第三方库初始化函数的行,那么一切再次正常工作 - 我可以调用我的所有函数并在 Visual Studio 中命中断点。
所以基本上,如果我将此库编译到我的 dll 中,那么 AIR 将无法加载它。 什么原因可能导致这种情况?
使用 ProcessMonitor,我发现第三方库依赖于外部 dll,但它没有找到。 在创建 ExtensionContext 时,运行时显然会尝试解析 ANE 的依赖关系。 由于找不到此 dll,因此 ANE 的初始值设定项函数失败。 在这种情况下,AIR 仍会创建一个 ExtensionContext 对象,但由于该对象从未成功初始化,因此它不知道其函数的名称和位置。
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 为什么static_assert错误:即使我传递常量"expression must have a constant value"?
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- OpenCV Android C++ imwrite not found
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 错误"Could not find Boost"(缺少:上下文标头)
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- Is !NaN not a NaN?
- 模板元编程:"does not have integral or enumeration type"
- "does not have a class type"错误
- 类标头和在我的类.cpp文件中使用构造函数:"error: class 'Test' does not have any field named 'counter'"
- "The breakpoint will not currently be hit. No symbols have been loaded for this document." Visual S
- SFML 2.1 和 Xcode 4.6.3 - "The specified SDK " 当前的 OS X " does not appear to have all of the necessar
- 编译时指针"does not have a type"?
- std::使用虚拟呼叫操作员转换抛出"global functions do not have 'this' pointers"
- C++标准中短语"constructors do not have names"的含义
- AIR 本机扩展"The extension context does not have a method with the name"
- 在 AIR 本机扩展中包含库会导致错误,"The extension context does not have a method with the name..."适用于所有方法