[Interest] Is it possible to override dll in runtime in Qt?

manish sharma 83.manish at gmail.com
Wed Apr 9 11:59:54 CEST 2014


I think you might have to design your application something like below:

For instance all the Prmt.dlls should implement a common interface for
instance: PrmtInterface and place it under PrmtInterface.h

And your Core.dll only know about PrmtInterface.h, it should not link to
any of the Prmt.dll. And then you go on implementing Prmt.dlls and place it
to different folders. And at run time you should use QPluginLoader to
load/unload appropriate plugin.


Hope this help!


On Wed, Apr 9, 2014 at 12:22 PM, Vincent Cai <wcai at cypress.com> wrote:

>  Hi manish,
>
>
>
>                Thanks for the reply.
>
>                I am totally new to QPlugin and QLibrary.
>
>                I don't quite understand your meaning.
>
>                With your method below, can I load A/Prmt.dll then unload
> A/Prmt.dll and then load B/Prmt.dll in runtime without restarting
> Application?
>
>                BTW, Core.dll is dependent on Prmt.dll, how can Core.dll
> know access symbols in Prmt.dll after changing Prmt.dll?
>
>
>
> Regards,
>
> Vincent.
>
> *From:* manish sharma [mailto:83.manish at gmail.com]
> *Sent:* Wednesday, April 09, 2014 2:42 PM
> *To:* Vincent Cai
> *Cc:* interest at qt-project.org
> *Subject:* Re: [Interest] Is it possible to override dll in runtime in Qt?
>
>
>
> i think it should work using pluginloader something like below:
>
> QObject* getPrmt(QString path)
> {
>
>         QDir pluginsDir(path)
>
>         QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
>         return loader.instance();
> }
>
> and call getPrmt function with any of "A/Prmt.dll", "B/Prmt.dll"?
>
>
>
> On Wed, Apr 9, 2014 at 10:34 AM, Vincent Cai <wcai at cypress.com> wrote:
>
> Dear All,
>
>
>
> I have an Qt application, which uses 2 dll, one is Prmt.dll and the other
> is Core.dll. Core.dll is dependent on Prmt.dll. Prmt.dll has multiple
> instances in different folders, for example: A/Prmt.dll, B/Prmt.dll... The
> Qt application provides an option to choose Prmt.dll, so it need to
> override Prmt.dll in runtime. Is it possible to override dll in runtime in
> Qt?
>
>
>
> Regards,
>
> Vincent.
>
> This message and any attachments may contain Cypress (or its subsidiaries)
> confidential information. If it has been received in error, please advise
> the sender and immediately delete this message.
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
>
>  This message and any attachments may contain Cypress (or its
> subsidiaries) confidential information. If it has been received in error,
> please advise the sender and immediately delete this message.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20140409/06e25ba0/attachment.html>


More information about the Interest mailing list