问题标签 [dart-native-extension]
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.
dart - 如何让 Dart 原生扩展演示“sample_extension”工作?
我正在尝试从此页面中获取 Dart 本机扩展示例来工作。
http://www.dartlang.org/articles/native-extensions-for-standalone-dart-vm/
我在 Windows 上。我将 dart 下载并解压缩到 C:\Program Files\dart
我将 dartsSVN 检出到 C:\Projects\dartSVN 中,这样我就可以获得 sample_extention 项目,但是当我打开它时,分析器会抛出这些问题:
“URI 的目标不存在:'dart-ext:sample_extension'”
和
“原生函数只能在 SDK 和通过原生扩展加载的代码中声明”
当我尝试运行它时,我得到了
“找不到扩展库‘file:///C:/Projects/Dart/sample_extension/bin/sample_synchronous_extension.dart’:错误:第 7 行 pos 1:库处理程序失败导入‘dart-ext:sample_extension’;
'file:///C:/Projects/Dart/sample_extension/bin/test_sample_synchronous_extension.dart':错误:第 7 行 pos 1:库处理程序导入 'sample_synchronous_extension.dart' 失败;"
我究竟做错了什么?
dart - Dart 是否支持与本机库的接口?
随着服务器端部分变得更加复杂,开发人员将需要利用现有软件。那么,Dart 是否支持与本机库(尤其是 C 库)的接口?
dart - Dart 可以用作通用语言吗?
Dart 支持与本地库的接口(参考:http ://www.dartlang.org/articles/native-extensions-for-standalone-dart-vm/ )。有一些不错的库可用于套接字通信、与数据库接口和处理文件系统。除了桌面 GUI 应用程序,我看不出它不能用作通用语言的任何原因。Dart 用作通用语言(包括性能)有哪些优点/缺点?
dart - 是否可以从 C++ 调用 Dart 方法?
如何从 C++ 代码调用 Dart 方法?我想尝试在我的应用程序中使用 Dart 作为脚本语言。
asynchronous - Dart 原生扩展:异步但阻塞?
经过一番尝试,我可以看到:扩展执行与 dart 是异步的,但不是 C,它在当前方法尚未完成时阻塞。
当我执行 3 次调用服务端口的方法时:
直到每个“来自 c 的你好!”,它的睡眠 5 秒。有一种方法在 C 端也是异步的吗?我见过 :
伟大的 !但 ...
这有什么问题吗?(我想投票支持它以遵循解决方案)虽然问题没有解决,但最好的解决方案是什么?在 C fork 中运行代码?
c - 如何从飞镖扩展 dll 中引发自定义错误?
我正在尝试创建一个扩展来包装现有的 DLL,而不需要广泛的 C/++ 知识。我已经使用示例扩展作为基础,一切似乎都工作正常,我想做的是在我的 dll 中进行一些错误处理。
如果 dll 中的某些内容失败,是否有办法将自定义错误发送回 dart?是否只是发送的情况?比如说一个数组,第一个参数是一个布尔值,说明它是否失败,第二个参数是一个错误字符串,如果有的话。还是有一种实际的方法可以从 dll 本身抛出错误?
希望这是有道理的,谢谢,
dart - 本机扩展 - C++ 本机库
samples_extension 可以与 C 库链接一起使用,但是 C++ 库呢?
我有一个基于类的 C++ 库,我想将其用作本机扩展,因此我们有例如:-
在 C++ 中,我想要在 Dart 中有一个类似的类。
查看 dart_api.h 和 dart_native_api.h 我不清楚我如何将类指针从 C++ 来回传递给 Dart,以及我如何调用它们的方法并将其与 Dart 类实例联系起来。ResolveName 如何与 connection->open() 类型调用一起工作,还是我们完全不同。
dart - Dart 原生扩展 - dart-ext 在库中到底做了什么包括
我在本机扩展中包含以下内容:-
我使用本机扩展的 Dart 代码可以正常工作,一切都很好,但如果我包含以下内容:-
我突然得到:-
找不到扩展库'file:///home/steve/Development/google/dart/projects/amqp_client/lib/amqp_client.dart':错误:第 10 行 pos 1:库处理程序失败导入'dart-ext:so/amqp_extension ';
那么,为什么会这样,我的构建系统和 readelf 都说 .so 文件没有问题,如果是这样的话,它看起来像一个错误,这对我来说有点阻碍。
dart - Dart 控制台应用程序中的退出代码 139 是什么意思?
用 Dart 编写的控制台程序,native function
使用 code 调用 exit 139
。
Dart VM 不显示错误消息。
- 发生了什么?
- 在哪里可以找到有关退出代码 139 的文档?
- 为什么不显示
stack trace
Dart VM 代码?
附言
我故意不举例,因为它反复出现。
我不明白为什么异常终止的程序不显示错误消息。
这是否意味着139
在没有提供错误消息文本的情况下,错误代码是 Dart VM 中的未处理错误?
c++ - 为什么 Dart 中的原生包装函数与非常轻量级的“DEFINE NATIVE ENTRY”函数相比如此重量级?
我无法理解:“为什么要这样保证?”。
这是自定义本机函数的包装器dart/runtime/vm/native_entry.cc
:
它适用于想要编写的 Dart 程序员native extensions
。
这个包装器在每次调用包装的本机函数时都会执行所有不必要的检查,这使得这些函数与使用开发人员自己的函数相比没有竞争力。
这是用于定义本机函数的宏dart/runtime/vm/native_entry.h
:
我知道它直接与RawObject
. 这个是正常的。
但是我无法在其中找到所有这些测试,这些测试在每个调用中执行,就像在上面的包装器中一样。
当我看到我的函数比通过DEFINE_NATIVE_ENTRY
.
附言
我的native function
那个在比(例如)这个函数慢 500% 时有效NOTHING
也无效。returns ANYTHING
有没有办法编写不需要所有这些的轻量级本机函数scope
?