如何在Flutter桌面应用中使用C++代码?

3

如何使用C++开发桌面应用程序的自定义插件,以及如何在我的Flutter代码中使用C++语言并访问它。是否有适用于在Dart语言中访问C++程序的文档?


您可以查看此链接:https://flutter.dev/docs/development/platform-integration/c-interop - Darshan
1个回答

7

您最好的选择是使用Dart VM的FFI(外部函数接口)来绑定C API。您可以标记您的C++代码中需要“导出”到C语言的函数如下所示:

extern "C" void myExportedFunction() {}

extern "C" 用于编译时防止函数名被混淆。

你可以将你的 C++ 代码编译为一个动态库(在 Linux 上是 .so,Windows 上是 .dll,Mac OS 上是 .dylib),然后进行加载。调用 myExportedFunction 的代码示例如下:

import 'dart:ffi';

DynamicLibrary loadLibrary() {
  return DynamicLibrary.open('path/to/my/library.extension'); // extension would be .so for linux, .dll for windows and so on
}

void executeMyFunction() {
  final lib = loadLibrary();
  final myFunction = lib.lookup<NativeFunction<Void Function()>>('myExportedFunction').asFunction();

  myFunction();
}

您可以在以下链接中查看文档: 还可以在以下链接中找到一些示例:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接