qmlnet/samples/hosting/README.md
2018-09-12 17:45:17 -04:00

33 lines
1.3 KiB
Markdown

# Hosting
## Purpose
Most of the time, it is easier to have .NET serve the entry point of your application (```Program.cs```). This approach works consistently across platforms and IDEs.
However, sometimes you need greater control over how Qt is initialized on start. Or, you have some C/C++ code that needs to be run before the applications stars. Or, you need to register custom ```QObject``` classes with QML. You get the idea.
Regardless, the following approach allows you to create a Qt project in tradtional way (with .qrc files, linked libs, etc) while still using ```Qml.Net```.
## Benefits
* Traditional Qt/QML application with complete control over the generated main executable.
* No need for the ```Qml.Net.*Binaries``` packages since the native components needed for ```Qml.Net``` are linked in the main executable and passed to .NET via magic.
## Running the sample
Running the sample is straight forward. It is the best way to get the gist of how things are working (it's simple, IMO).
* Step 1: Build the .NET entrypoint application.
```
cd net
dotnet build
```
* Step 2: Open ```native/NativeHost.pro``` in Qt Creator and run it.
That's it.
## The interesting parts
Follow phases 1-9 across the following files:
* [native/main.cpp](native/main.cpp)
* [net/Program.cs](net/Program.cs)