diff --git a/src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.cpp b/src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.cpp new file mode 100644 index 00000000..dc6c99e4 --- /dev/null +++ b/src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.cpp @@ -0,0 +1,13 @@ +#include +#include +#include + +extern "C" { + +Q_DECL_EXPORT bool qresource_registerResource(LPWSTR rccFileName, LPWSTR resourceRoot) { + QString rccFileNameString = QString::fromUtf16((const char16_t*)rccFileName); + QString resourceRootString = QString::fromUtf16((const char16_t*)resourceRoot); + return QResource::registerResource(rccFileNameString, resourceRootString); +} + +} diff --git a/src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.h b/src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.h new file mode 100644 index 00000000..ef1e21d9 --- /dev/null +++ b/src/native/QtNetCoreQml/QtNetCoreQml/qml/QResource.h @@ -0,0 +1,6 @@ +#ifndef NET_QRESOURCE_H +#define NET_QRESOURCE_H + +#include + +#endif // NET_QRESOURCE_H diff --git a/src/native/QtNetCoreQml/QtNetCoreQml/qml/qml.pri b/src/native/QtNetCoreQml/QtNetCoreQml/qml/qml.pri index 2c5c9f0e..f4f3b9f4 100644 --- a/src/native/QtNetCoreQml/QtNetCoreQml/qml/qml.pri +++ b/src/native/QtNetCoreQml/QtNetCoreQml/qml/qml.pri @@ -6,7 +6,8 @@ HEADERS += \ $$PWD/NetValueMetaObject.h \ $$PWD/NetValueType.h \ $$PWD/NetVariantList.h \ - $$PWD/NetTestHelper.h + $$PWD/NetTestHelper.h \ + $$PWD/QResource.h SOURCES += \ $$PWD/QGuiApplication.cpp \ @@ -16,4 +17,5 @@ SOURCES += \ $$PWD/NetValueMetaObject.cpp \ $$PWD/NetValueType.cpp \ $$PWD/NetVariantList.cpp \ - $$PWD/NetTestHelper.cpp + $$PWD/NetTestHelper.cpp \ + $$PWD/QResource.cpp diff --git a/src/net/Qt.NetCore/Interop.cs b/src/net/Qt.NetCore/Interop.cs index fc15c8b7..0e9d4474 100644 --- a/src/net/Qt.NetCore/Interop.cs +++ b/src/net/Qt.NetCore/Interop.cs @@ -24,6 +24,7 @@ namespace Qt.NetCore NetInstance = NativeLibraryBuilder.Default.ActivateInterface("QtNetCoreQml"); NetVariantList = NativeLibraryBuilder.Default.ActivateInterface("QtNetCoreQml"); NetTestHelper = NativeLibraryBuilder.Default.ActivateInterface("QtNetCoreQml"); + QResource = NativeLibraryBuilder.Default.ActivateInterface("QtNetCoreQml"); var cb = DefaultCallbacks.Callbacks(); Callbacks.RegisterCallbacks(ref cb); @@ -51,6 +52,8 @@ namespace Qt.NetCore public static INetTestHelperInterop NetTestHelper { get; } + public static IQResourceInterop QResource { get; set; } + public static void RegisterCallbacks(ICallbacks callbacks) { var callbacksImpl = new CallbacksImpl(callbacks); diff --git a/src/net/Qt.NetCore/Qml/QResource.cs b/src/net/Qt.NetCore/Qml/QResource.cs new file mode 100644 index 00000000..25ab09a6 --- /dev/null +++ b/src/net/Qt.NetCore/Qml/QResource.cs @@ -0,0 +1,19 @@ +using System.Runtime.InteropServices; +using AdvancedDLSupport; + +namespace Qt.NetCore.Qml +{ + public class QResource + { + public static bool RegisterResource(string rccFileName, string resourceRoot = null) + { + return Interop.QResource.RegisterResource(rccFileName, resourceRoot); + } + } + + public interface IQResourceInterop + { + [NativeSymbol(Entrypoint = "qresource_registerResource")] + bool RegisterResource([MarshalAs(UnmanagedType.LPWStr)]string rccFileName, [MarshalAs(UnmanagedType.LPWStr)]string resourceRoot); + } +} \ No newline at end of file