mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 22:49:53 +00:00
4f8333e80e
Make intent explicit for classes which are intended as interfaces, or which are not intended to be subclassed. Mainly classes which are pure interfaces are marked as such, and platform-specific classes not intended for subclassing are made `final`. The `final` classes includes `BigInt`, which is written to assume that arguments inherit its private members (it runs `_ensureSystemBigInt` on arguments). It also includes the `Expando`, `WeakReference` and `Finalizer` classes, which are just intended as stand-alone implementation classes for accessing platform-specific functionality. Change-Id: Ib770c265edff127a289a67fe72d15b9ff0499407 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/287180 Reviewed-by: Stephen Adams <sra@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com> Reviewed-by: Aske Simon Christensen <askesc@google.com> Reviewed-by: Nate Bosch <nbosch@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> |
||
---|---|---|
.. | ||
docs | ||
example | ||
lib | ||
test | ||
.gitignore | ||
pubspec.yaml | ||
README.md |
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 dart run example/main
should produce the following output.
$ dart 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. For information on how to use this package within a Flutter app, see docs/android.md. (Note: iOS is not yet supported).