PDA

View Full Version : Windows Shell extension with Qt dll and Matlab(Simulink) qt version error



ramazangirgin
8th May 2011, 00:30
Hi all, We wrote shell extension for windows explorer using method shellexecutehook() with C++ and Qt 4.5.1 . I register my dll to explorer with regsvr32 command. I have already install matlab 2007a in my computer. I can start matlab but when i try to call some simulink func(ex: bdclose all) it gives error while loading libmwsimulink.dll. It say it can not find method in dll.

After some research i saw that matlab use Qt 4.1 dlls with simulink. And i show this matlab loads all explorer shell extension dlls also my extension dll at startup.

I think when matlab tries to load libmwsimulink.dll it see that there is qt dlls in memory and tries to use them and it gives error. Because some qt dlls loaded with my windows shell extension with version 4.5.1 but matlab 2007a wants dlls with version 4.1. so it gives error.

I want to ask how can i handle this error? have i write my shell extension with Qt 4.1 for working with matlab 2007a. Or shell extension without using qt dll?Or What?
What do you offer?
Thanks

wysota
8th May 2011, 23:11
You cannot mix different Qt versions in one executable. You need to rebuild one of the libraries to use the same Qt version as expected by the other one.