问题标签 [dart-ffi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - 找不到“openssl”提供的包配置文件
我正在尝试使用 dart:ffi 将 OpenSSL 与 Flutter 一起使用,但是当我在 Ubuntu 20.04 上运行该项目时,会出现如下错误消息。我在 Windows 10 上测试了这个项目,它工作正常。
CMakeLists.txt
错误
如何在 Ubuntu 上运行该项目?
flutter - 在 Linux 上编译 Flutter 应用程序时未定义的引用
我构建了一个使用 Dart FFI 和共享库并发布到 pub.dev 的插件。每当我尝试在我的应用程序中使用该插件时,它总是会因找不到文件错误而失败,而且我不知道错误来自哪里。
错误:
我已经分别修改了我的 cmake 文件来解决这个问题并尝试了各种包含方法但无济于事。当前的cmake:
我的发布规范
提供的每个信息都来自我的插件,而不是我尝试构建的颤振应用程序,导致整个问题在我添加该插件时开始
我一直以此为参考。我现在唯一的选择是使用方法通道重建插件,因为这是插件的第一次迭代,但我没有依赖颤振和飞镖 FFI 更容易,需要更少的代码。
更新: 我通过将插件重新生成为添加丢失文件的颤振插件解决了上述错误。现在我有另一个构建错误
generated_plugin_registrant.cc 的内容
size_plugin.h 的内容
generated_plugin_registrant.h 的内容
c++ - 在飞镖中使用 C++ std::map
我有一个返回的 C++ 函数std::map<MyCustomEnum, std::string>
,其中MyCustomEnum
是 cpp 文件中定义的枚举。
我想在我的飞镖代码中使用这个 c++ 库并调用这个函数来打印地图值。不确定在这种情况下如何使用 dart:ffi。
编辑:
我的 cpp 代码中有以下内容:
enum ADDRESS{ HOME, WORK, SCHOOL }
typedef std::<ADDRESS, std::string> AddressMap
AddressMap getAddress(AddressMap &map)
我想使用飞镖代码,所以我将能够使用 getAddress 函数。调用此功能后,我想在我的飞镖代码中使用返回的地图值。
c - 将 Dart 字符串转换为 dartffi 指针
我使用ffigen从 C 头文件生成绑定。C 中的方法之一是open(const char *path)
,ffigen 生成了一个绑定方法open(ffi.Pointer<ffi.Int8> path)
。如果我想要一个open(String path)
访问此绑定方法的 dart 方法,如何将 String 参数转换为 ffi.Pointer<ffi.Int8>?
android - 谁在颤振项目中加载.SO库
我正在尝试在我的项目中链接一个名为 librandomnumber.so 的预编译共享库文件。 CMakeLists.txt 的代码:
加载库代码:
显示此错误
错误:无效参数:无法加载动态库“native-lib.so”:dlopen 失败:未找到库“native-lib.so”
你能给我解决方案吗?
c - Dart FFI 保持结构指针
我正在尝试从 dart 调用 C 库。C 代码作为生成器方法,例如
然后是接受指向结构的指针的方法,例如:
我已经使用 ffigen 创建了飞镖绑定,并且我有
和
我的问题是我不知道如何get_info
从a_struct
. create_struct
确实,get_info
期望 affi.Pointer<a_struct>
但我只生成a_struct
没有指针的 a 。由于 dart 已弃用.addressOf
,我如何获得ffi.Pointer<a_struct>
from create_struct
?
flutter - 颤振:飞镖 FFI 找不到符号
我已按照标准Flutter FFI 说明libavcodec.dylib
将其包含在 Flutter 项目中。
调用DynamicLibrary.open('libavcodec.59.dylib')
执行没有问题,并返回一个非负句柄地址,(我认为)表明加载成功。
当我尝试查找任何符号时,Flutter 会抛出错误:
“[错误:flutter/lib/ui/ui_dart_state.cc(209)] 未处理的异常:无效的参数:无法查找符号...”。
当我providesSymbol()
使用各种符号名称调用时,它总是返回false
.
有谁知道为什么会发生这种情况?引导这样的库是否需要额外的步骤?如何调试问题的根本原因?
flutter - 如何在 Dart 中将 RGB 像素图转换为 ui.Image?
目前我有一个 Uint8List,格式为 [R,G,B,R,G,B,...] 用于图像的所有像素。当然,我有它的宽度和高度。
我decodeImageFromPixels
在搜索时发现但它只需要 RGBA/BGRA 格式。我将我的像素图从 RGB 转换为 RGBA,这个函数工作正常。
但是,我的代码现在看起来像这样:
我必须创建一个新列表(浪费空间)并遍历整个列表(浪费时间)。
在我看来这太低效了,有什么办法可以让它更优雅吗?喜欢添加一个新的PixelFormat.rgb888
?
提前致谢。
c++ - Dart/Flutter FFI:将列表转换为数组
我有一个从 C++ 库接收浮点类型数组的结构。
我能够接收数据并在 Dart 中解析它。现在我想做相反的事情。我有一个List<double>
我想分配给这个结构并传递给 C++ 的。
以下强制转换在运行时失败。
Array 类和 List 类都没有任何相关的方法。对此有任何想法吗?
flutter - Flutter 无法加载带有错误代码的 DLL
我正在尝试将 dll 导入我的 Windows 应用程序并将其与 ffi 一起使用。我用 ffigen 成功生成了绑定。
但是当我尝试打开 dll 时出现错误:
Failed to load dynamic library 'src/avformat-57.dll': error code 1557260104
最后的数字总是不同的,搜索它没有结果。
我使用了 ffmpeg 的头文件和库文件,并从这里获取它们: https ://github.com/delahee/linc_ffmpeg/tree/master/lib/ffmpeg
那就是我尝试导入它们的代码:
所有这些都给我一个看似随机的错误代码的错误。
有谁知道这个问题或知道如何解决它?