I have been using qwt for some time, with the MSVC++ integrated versions of QT. Lately, I have been experimenting successfully with the QT Creator SDK, which uses the mingw-g++ tool chain, etc.
I can build qwt with no compile or link errors. However, when I try to run any executables (such as the qwt examples) I get an error
the procedure entry point ??0Brush@@Q开发者_C百科AE@W4GlobalColor@Qt@@W4BrushStyle@2@@Z could not be located in the dynamic link library QtGuid4.dll
I have tried moving the correct version of QtGuid4.dll (the one from the Mingw version of qt) into the local directory, checked my paths, etc--no joy. I have renamed the qtguid4.dll to a different name to make sure it was the one being used--it is, if I rename it, the system can't find the dll and wont run.
I do note that the C:\Qt\2009.03\qt\bin (the mingw one) is 134779 kb, while the msvc++ version is 11,380 kb--this seems like a huge discrepancy--
any ideas? things to try next? I have done the usual google searches, etc, with no success
Well, once again the motivation of having asked a question on sack overlow seems to have spurred me into finding my own answer.
I did indeed have my paths set up correctly, and my code was using the right QtGuid4.dll.
However, I was also using qwtd5.dll, and unfortunately, there was a version of it stuck into c:\windows\system32. It had been compiled using visual studio, and therefor a different version of qt--so when it referenced qtguid4.dll, it was referencing a different version. When I removed the qwtd5.dll, and my app found the newly compiled (with mingw) version, all worked fine
I was using dependency walker, and when it couldn't find msvcrt80.dll, that clued me into realizing that I was using code that had been compiled with visual studio
精彩评论