Comments (6)
I think this is a great idea and would open the door to many libraries that does not support Windows. Do you think we, developers, can start working on it?
from winobjc.
The only issue I see is external library's processor architecture. This means iOS libraries would not run on x86-x64 machines, though Mac libraries should. The iOS Bridge compiler could analyze all the external imports in the code, and then the linker could create a section in the resulting PE file that lists all those imports. Then the stub code in the PE could call iOS Bridge Runtime to load each external iOS library and analyze its imports (now here I'm not sure how iOS library's import section looks like) and then patch them to point into the Runtime's functions. Much the same way Windows loader works.
from winobjc.
A serious issue would be API support. A lot of libraries might try linking to API that's not there. For example, a library we ship tries to touch a lot of API that's not present. Even then, the behaviors could be different. It seems like it could be a lot more trouble than it's worth for a Windows native application.
Most libraries ship with x86 libraries in since the iOS Simulator is x86 (and x86-64), so that's not a serious problem.
from winobjc.
If we're talking about binary libraries, existing binaries could do things like call into Mach or the iOS kernel functions (or even BSD functions) which probably won't be emulated or would be difficult to emulate for this API. For example, an API like Flurry might ask kernel level code for device configuration, and that's going to be very difficult to emulate through an API like this.
from winobjc.
Okay, I see. Let me split this issue into two then as it also contains another important suggestion: #20
from winobjc.
Thanks for the idea, we don't have any plans for supporting iOS binaries at this time.
from winobjc.
Related Issues (20)
- What versions of Windows are supported? HOT 2
- Unable to activate Windows store app. HOT 4
- Switch to `__objc_msg_forward2` for better forwarding efficiency HOT 1
- Can not install winobjc with win10 HOT 1
- -[NSObject conformsToProtocol:] does not work.
- clang hangs when compiling using optimisation flag -Os HOT 2
- Does Windows Bridge supports Metal Framework? HOT 1
- Does Windows Bridge supports OpenGL? HOT 1
- G HOT 1
- On running ios project(in Objective-C) throws error
- c sharp
- Ggg
- hhh HOT 3
- Bring WinObjC to WSLg, either exclusive to CUDA and DX12, or for all Linux with Vulkan. HOT 1
- ()R
- This repo is missing important files HOT 1
- has anyone tried newer versions of VStudio w/ this project? HOT 6
- nugetizer-2017 online package is missing HOT 2
- Need some updated instructions re installation in newer VS versions (2019 and up) HOT 4
- 使用vs2019 编译错误,什么时候改为#include <typeinfo> 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 winobjc.