1f791e0668
Closes #39680 https://github.com/dart-lang/sdk/pull/39680 GitOrigin-RevId: 08a6f2c661d645f14ff41c13292002028bc10323 Change-Id: I5100521fa011be5167d00e5610bd87cb2f78093b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127456 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# Sample code dart:ffi
|
|
|
|
This is an illustrative sample for how to use `dart:ffi`.
|
|
|
|
## Prerequirement
|
|
|
|
For Windows, Linux, and MacOS, you should make sure, sqlite dev lib installed on your system.
|
|
|
|
Windows user can download dll from https://www.sqlite.org/download.html
|
|
|
|
If you do not have any sqlite3.dll or so file, you may found error message:
|
|
|
|
```
|
|
Unhandled exception:
|
|
Invalid argument(s): Failed to load dynamic library (126)
|
|
#0 _open (dart:ffi-patch/ffi_dynamic_library_patch.dart:13:55)
|
|
#1 new DynamicLibrary.open (dart:ffi-patch/ffi_dynamic_library_patch.dart:22:12)
|
|
```
|
|
|
|
## Building and Running this Sample
|
|
|
|
Building and running this sample is done through pub.
|
|
Running `pub get` and `pub run example/main` should produce the following output.
|
|
|
|
```sh
|
|
$ pub get
|
|
Resolving dependencies... (6.8s)
|
|
+ analyzer 0.35.4
|
|
...
|
|
+ yaml 2.1.15
|
|
Downloading analyzer 0.35.4...
|
|
Downloading kernel 0.3.14...
|
|
Downloading front_end 0.1.14...
|
|
Changed 47 dependencies!
|
|
Precompiling executables... (18.0s)
|
|
Precompiled test:test.
|
|
|
|
```
|
|
|
|
```
|
|
$ pub run example/main
|
|
1 Chocolade chip cookie Chocolade cookie foo
|
|
2 Ginger cookie null 42
|
|
3 Cinnamon roll null null
|
|
1 Chocolade chip cookie Chocolade cookie foo
|
|
2 Ginger cookie null 42
|
|
expected exception on accessing result data after close: The result has already been closed.
|
|
expected this query to fail: no such column: non_existing_column (Code 1: SQL logic error)
|
|
```
|
|
|
|
## Tutorial
|
|
|
|
A tutorial walking through the code is available in [docs/sqlite-tutorial.md](docs/sqlite-tutorial.md).
|
|
For information on how to use this package within a Flutter app, see [docs/android.md](docs/android.md).
|
|
(Note: iOS is not yet supported).
|