Comments (3)
Here is a perfect example:
inline fun onClick(noinline listener: () -> Unit) : Unit =
g_signal_connect(internal, "clicked", staticCFunction(listener))
Outputs:
error: kotlinx.cinterop.staticCFunction must take an unbound, non-capturing function or lambda
from kotlin-native.
One may implement custom solution around user data, like is being done here https://github.com/JetBrains/kotlin-native/blob/master/samples/libcurl/src/org/konan/libcurl/CUrl.kt#L39
More generic solution is feasible, but raises ugly issues with callback lifetimes (as if we create a true closure, closure object need to be freed at some moment + requires codegeneration at runtime, as single C function pointer has to combine both data and code pointer, thus have to be unique executable segment pointer per closure).
We may consider implementing this feature in the future.
from kotlin-native.
I worked around the limitations using the example you linked (StableObjPtr
) and got it to work. Of course it would be nice to do by default. Close this issue if you see it necessary (or keep it open to track progress on the implementation)
from kotlin-native.
Related Issues (20)
- Important: please use YouTrack for bugs and feature requests HOT 7
- pods framework not work in xcode HOT 10
- How to access a method - Kotlin Shared DLL using CPointer HOT 3
- How to interact with kotlin collections from C/C++ code? HOT 4
- Code of cmake project, compile error error: invalid use of incomplete type 'std::filesystem::__cxx11::filesystem_error' HOT 1
- How can I invoke win32 function pointer with _stdcall type HOT 3
- Not Working SiwftyUI rendering when library implemented to project
- Are there any way for modify Other Link Flag on Xcode by Gradle? HOT 1
- How I can pass String to variable type URL? HOT 2
- Platform iOS package is missing HOT 2
- Can not build ios app into device because "embedded framework 'SharedCode.framework' was built for iOS Simulator." HOT 3
- Please read the text below
- Please read the text below HOT 1
- Xcode 11.6 still using older versions of kotlin native HOT 8
- Why publishLibraryVariants don't work ? HOT 1
- Compilation failed: llvm.llvm (initialization failure) NoClassDefFoundError: llvm.llvm HOT 5
- package of cinterop dependency (Swift framework) not found in the iOSMain sources set HOT 1
- Retrieving package behind authenticated proxy fails 407 HOT 7
- Objective-C interoperability architecture issue Undefined symbols for architecture x86_64 HOT 3
- ld: framework not found AFNetworking HOT 3
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 kotlin-native.