[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