如何从 Flutter 调用原生 C 函数?
How to call a native C function from Flutter?
我想从 Flutter 调用 'hello_world' 函数。
#include <stdio.h>
#include "hello.h"
__attribute__((visibility("default"))) __attribute__((used))
int main()
{
hello_world();
return 0;
}
void hello_world()
{
printf("Hello World\n");
}
我在 plugin.dart:
中尝试过这种方式
final DynamicLibrary helloLib = Platform.isAndroid
? DynamicLibrary.open("libhello.so")
: DynamicLibrary.process();
final void Function() hello =
helloLib
.lookup<NativeFunction<Void Function()>>("hello_world")
.asFunction();
在我的 main.dart 文件中,我尝试了这种方式:
body: Center(
child: Text('Running on: ${hello}'),
但是它显示无效而不是显示结果。如何解决这个问题呢?
提前致谢。
要在 Flutter 程序中使用 C 代码,请使用 dart:ffi
库(目前处于测试阶段)。
Step 1: Create a plugin
Step 2: Add C/C++ sources
Step 3: Load the code using the FFI library
你可以参考这个:https://docs.flutter.dev/development/platform-integration/c-interop
我想从 Flutter 调用 'hello_world' 函数。
#include <stdio.h>
#include "hello.h"
__attribute__((visibility("default"))) __attribute__((used))
int main()
{
hello_world();
return 0;
}
void hello_world()
{
printf("Hello World\n");
}
我在 plugin.dart:
中尝试过这种方式final DynamicLibrary helloLib = Platform.isAndroid
? DynamicLibrary.open("libhello.so")
: DynamicLibrary.process();
final void Function() hello =
helloLib
.lookup<NativeFunction<Void Function()>>("hello_world")
.asFunction();
在我的 main.dart 文件中,我尝试了这种方式:
body: Center(
child: Text('Running on: ${hello}'),
但是它显示无效而不是显示结果。如何解决这个问题呢? 提前致谢。
要在 Flutter 程序中使用 C 代码,请使用 dart:ffi
库(目前处于测试阶段)。
Step 1: Create a plugin
Step 2: Add C/C++ sources
Step 3: Load the code using the FFI library
你可以参考这个:https://docs.flutter.dev/development/platform-integration/c-interop