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

相关推荐
_一条咸鱼_几秒前
揭秘 Android FrameLayout:从源码深度剖析使用原理
android·面试·android jetpack
_一条咸鱼_2 分钟前
深度剖析 Android ViewPager:从源码探究其使用原理
android·面试·kotlin
_一条咸鱼_2 分钟前
揭秘 Android ViewGroup:从源码深度剖析使用原理
android·面试·android jetpack
_一条咸鱼_3 分钟前
揭秘 Android TabLayout:从源码深度剖析使用原理
android·面试·android jetpack
_一条咸鱼_5 分钟前
深入剖析 Android RecyclerView 的使用原理
android·面试·android jetpack
Lei活在当下5 分钟前
【现代 Android APP 架构】01. APP 架构综述
android·设计模式·架构
_一条咸鱼_6 分钟前
深度剖析!解锁 Android RelativeLayout 的底层原理与高级玩法
android·面试·android jetpack
农民也会写代码12 分钟前
dedecms织梦arclist标签noflag属性过滤多个参数
开发语言·数据库·sql·php·dedecms
内网渗透30 分钟前
Python 虚拟环境管理:venv 与 conda 的选择与配置
开发语言·python·conda·虚拟环境·venv
embedded_w34 分钟前
U8G2在PC端模拟(C语言版本)
c语言