Comments (4)
we also check for NativeCallable.listener but issue is still persistent
Are you sure? This error message can only occur with NativeCallable.isolateLocal
.
Could you provide a minimal reproduction on a GitHub repo?
from sdk.
Thank you for your response.
We call CPP dll in Flutter using Flutter ffi. This is our CPP function in dll.
extern "C" __declspec(dllexport) void StartServerSession (const char* Name,const char* js,int& sessionID,int& ERESULT,void(eventhandler)(const char,int))
export "C"__declspec(dllexport) void InitializeServer(void(eventhandler)(const char,int)){ PtrObj->Initialize(eventhandler); }
final DynamicLibrary DllPath = DynamicLibrary.open('path to dll');
typedef InitializeFunc = Void Function(Pointer<Void> eventhandler);
typedef InitializeFun = void Function(Pointer<Void> eventhandler);
typedef StartServerSessionC = Void Function(Pointer<Utf8> Name, Pointer<Utf8> js, Pointer<Pointer<Int32>> sessionID, Pointer<Pointer<Int32>> ERESULT,Pointer<Void> eventhandler);
typedef StartServerSession = void Function(Pointer<Utf8> Name, Pointer<Utf8> js, Pointer<Pointer<Int32>> sessionID, Pointer<Pointer<Int32>> ERESULT,Pointer<Void> eventhandler);
void eventHandler(Pointer<Utf8> response, int length) {
print('Response: ${response.cast<Utf8>.toDartString()}');
}
final initialize = DllPath.lookupFunction<InitializeFunc , InitializeFun>('Initialize');
final startServerSession = DllPath
.lookupFunction<StartServerSessionC, StartServerSession>('StartServerSession');
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('FFI Demo')),
body: Center(
child: ElevatedButton(
onPressed: () async {
// Example usage of the FFI functions
await callStartServerIsolate();
},
child: Text('Call DLL Function'),
),
),
),
);
}
}
void StartServerFunction(SendPort sendPort)
{
Pointer<Utf8> name = ('path to second dll'.toNativeUtf8());
Pointer<Utf8> js = {json value}.toNativeUtf8();
final sessionID = calloc<Int32>();
final ERESULT = calloc<Int32>();
initialize (Pointer.fromFunction<Void Function(Pointer<Utf8>, Int32)>(eventHandler)as Pointer<Void>);
startServerSession (
name,
js,
sessionID as Pointer<Pointer<Int32>>,
ERESULT as Pointer<Pointer<Int32>>,
Pointer.fromFunction<Void Function(Pointer<Utf8>, Int32)>(eventHandler)as Pointer<Void>);
sendPort.send("task Complete");
}
Future<Void> callStartServerIsolate()async{
final receivePort = ReceivePort();
final sendPort = receivePort.sendPort;
await Isolate.spawn(StartServerFunction,sendPort)
}
from sdk.
Pointer.fromFunction
is a sync callback. You're using it in two places in StartServerFunction
. Use NativeCallable.listener
instead.
from sdk.
@liamappelbe sir and @dcharkes sir thank you issue is resloved
from sdk.
Related Issues (20)
- [Null-aware elements] Experiment flag HOT 2
- [Null-aware elements] Language Tests in tests/language HOT 1
- [Null-aware elements] co19 Tests HOT 6
- [Null-aware elements] All tests in tests/language and co19 passing.
- Feature Request: Push Members Down & Safe Delete Refactor
- Macro: `extendsType` freezes analyzer HOT 17
- Ctrl + Click on @override should take you to the method being overriden HOT 8
- [dart2wasm] Compiler crash when using ffi Structs as a paramter to @Native HOT 3
- [Exhaustiveness Checking] Different behavior between statements and expressions HOT 12
- Language server is failing to initiate after upgrade to Dart 3.4.1 HOT 7
- Dart API docs for analyzer Package are missing HOT 9
- `TargetKind` for resource identifiers annotations HOT 3
- Error.throwWithStackTrace hides type and message of error HOT 3
- [CFE] Add implicit "return null" to AST if function end is reachable according to Dart language flow analysis
- `Swap with parent/child` assist should work on single-child `Flex`
- avoid_init_to_null fix of late initialize causes runtime errors HOT 1
- [dart2wasm] iFrame locks position on transition into view HOT 4
- [CP] [vm/ffi] Fix variadic arguments on MacOS Arm64 HOT 2
- analyzer plugins do not reanalyze non-Dart files when they are modified HOT 7
- `dart fix` output case inconsistency HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdk.