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

manish sharma 83.manish at gmail.com
Wed Apr 9 12:06:22 CEST 2014


you might want to take a look at
http://qt-project.org/doc/qt-5/qtwidgets-tools-plugandpaint-example.html



On Wed, Apr 9, 2014 at 3:29 PM, manish sharma <83.manish at gmail.com> wrote:

> 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/8dd37f58/attachment.html>


More information about the Interest mailing list