DART ffi 处理C pointer str为dart string

要引入两个模块,两个是不同的:

dart 复制代码
import 'dart:ffi';

import 'package:ffi/ffi.dart';

pointer char to string:

dart 复制代码
  var screenStr = (xx.GetSomeStrFun().cast<Utf8>().toDartString());

  var s = screenStr.split("x");

  _screenSize = {"width": double.parse(s[0]),"height":double.parse(s[1])};

  print(_screenSize);
dart 复制代码
//加载符号
DynamicLibrary nativeApi = Platform.isAndroid
    ? DynamicLibrary.open("libnative_ffi.so")
    : DynamicLibrary.process();
    
//查找目标函数
FFI_greetingString greetingFunc = nativeApi
	.lookupFunction<Native_greetingString, FFI_greetingString>("greetString");
    
//调用 greetString 函数,并将结果转为 Dart String.
Pointer<Int8> result = greetingFunc();
String greeting = result.cast<Utf8>().toDartString();

//打印结果
print("greeting=$greeting");
    
//输出结果
//greeting=Hello from Native

参考:https://blog.csdn.net/eieihihi/article/details/119152003

相关推荐
linhhanpy5 分钟前
自制操作系统(九、操作系统完整实现)
c语言·开发语言·汇编·c++·操作系统·自制操作系统
ACALJJ325 分钟前
STL整理
开发语言·c++
VincentWei957 分钟前
4.4-Channel 和 Flow:Flow 的创建、收集和操作符
android
豆本-豆豆奶8 分钟前
最全面的Python重点知识汇总,建议收藏!
开发语言·数据库·python·oracle
Bosenya1211 分钟前
【信号处理】绘制IQ信号时域图、星座图、功率谱
开发语言·python·信号处理
monkey_meng12 分钟前
【Rust Crate之Actix Web(一)】
开发语言·后端·rust
AI原吾29 分钟前
探索PyAV:Python中的多媒体处理利器
开发语言·python·ai·pyav
oliveira-time39 分钟前
爬虫学习8
开发语言·javascript·爬虫·python·算法
望佑1 小时前
复习一下Greendao...
android·数据库
矛取矛求1 小时前
string接口的深度理解(内附思维导图)
c语言·开发语言·c++·接口·string