相关疑难解决方法(0)

Dart/Flutter ffi(外来函数接口)原生回调,例如:sqlite3_exec

您好,我正在使用 dart:ffi 与我的本机 c/c++ 库构建一个接口。我需要一种方法来获取从 c 到 dart 的回调,例如在 sqlite 中:

int sqlite3_exec(
    sqlite3*,                                  /* An open database */
    const char *sql,                           /* SQL to be evaluated */
    int (*callback)(void*,int,char**,char**),  /* Callback function */
    void *,                                    /* 1st argument to callback */
    char **errmsg                              /* Error msg written here */
);
Run Code Online (Sandbox Code Playgroud)

in 的第三个参数sqlite3_exec是指向回调的函数指针。所以如果我在 dart 中使用调用这个函数,ffi我需要传递一个函数指针:在dart:ffi Pointer类中有一个名为fromFunctionwitch的函数接受一个 dart 静态函数和一个exceptionalReturn; 但是仅仅通过调用这个函数来获取一个 dart 托管函数的函数指针:a(sigterm)被引发并且 dart 代码不再在这个过程中工作。

所以我的问题:有没有办法在 dart 中获得本机回调,如在 Python、c#、..

额外:有什么方法可以包含 …

ffi dart flutter dart-ffi

8
推荐指数
1
解决办法
2523
查看次数

flutter/dart:如何在 Dart FFI 中使用异步回调?

我的应用程序的后端是用 C++ 编写的,前端是用 Dart/flutter 编写的。我很想在数据准备好时让后端通知前端。这需要在 Dart 和 C++ 之间实现异步回调方案。

环境

$ flutter doctor -v
[?] Flutter (Channel stable, 1.20.1, on Mac OS X 10.15.5 19F101, locale
    en-CN)
    • Flutter version 1.20.1 at /Applications/Android/flutter
    • Framework revision 2ae34518b8 (2 days ago), 2020-08-05 19:53:19 -0700
    • Engine revision c8e3b94853
    • Dart version 2.9.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

 
[?] Android toolchain - develop for Android devices (Android SDK version
    30.0.1)
    • Android SDK at /Applications/Android/sdk
    • Platform …
Run Code Online (Sandbox Code Playgroud)

dart flutter dart-ffi

5
推荐指数
2
解决办法
1198
查看次数

如何在Flutter应用中使用套接字?

我创建了Flutter应用。我需要将我的应用程序连接到本地网络套接字服务。如下所示,我可以使用telnet Connect,发送数据和从服务器接收数据。我使用Flutter web_socket插件和示例。我可以连接到服务器并发送数据,但是我无法捕获(或获取数据,但没有显示任何内容。)数据。在Flutter的Google网上论坛中,有人建议我使用流而不是StreamBuilder。

To send data I use;         Q101:_:49785:_:ABCDE
And receive data I get;     1:_:2:_:119351:_:N?YAZ? TOROS 
Run Code Online (Sandbox Code Playgroud)

当我使用此示例(https://flutter.io/cookbook/networking/web-sockets/)时,套接字服务出现错误,如下所示:

Q: 28.06.2018 08:53:57->GET / HTTP/1.1
A: 28.06.2018 08:53:57 ->:1:_:1:_:FAIL1
Run Code Online (Sandbox Code Playgroud)

例:

Last login: Tue Jun 26 15:01:44 on ttys000
Niyazis-MBP:~ niyazitoros$ telnet
telnet> telnet 192.168.1.22 1024
Trying 192.168.1.22...
Connected to 192.168.1.22.
Escape character is '^]'.
Q101:_:49785:_:*************
1:_:2:_:119351:_:N?YAZ? TOROS
Run Code Online (Sandbox Code Playgroud)

基于@Richard Heap的建议:

import 'dart:async';
import 'dart:convert';
import 'dart:io';

void connect(InternetAddress clientAddress, int port) {
  Future.wait([RawDatagramSocket.bind(InternetAddress.anyIPv4, 0)]).then(
      (values) {
    RawDatagramSocket _socket = values[0];
    _socket.listen((RawSocketEvent e) …
Run Code Online (Sandbox Code Playgroud)

dart flutter

3
推荐指数
2
解决办法
1万
查看次数

是否可以从C ++调用Dart方法?

如何从C ++代码调用Dart方法?我想尝试在应用程序中将Dart用作脚本语言。

dart dart-native-extension

2
推荐指数
1
解决办法
1838
查看次数

标签 统计

dart ×4

flutter ×3

dart-ffi ×2

dart-native-extension ×1

ffi ×1