Results 1 to 6 of 6

Thread: why does the plugin use a different instance of msvcr90.dll from qtcore.dll?

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jul 2010
    Posts
    4
    Thanks
    2

    Question why does the plugin use a different instance of msvcr90.dll from qtcore.dll?

    I have a application based on qt 4.6.2(dynamically linking).
    and it uses a codec plugin named qcncodecs4.dll, which stands for Chinese.
    the plugin directory is set to the application folder using QApplication::setLibraryPaths(QStringList) in "main".
    I built it with VS 2008. The corresponding MSVCRT is MSVCR90.dll and MSVCP90.dll.
    It runs ok on windows xp sp3, which has MSVCRT90 in the C:\WINDOWS\WINSXS.
    BUT, When the app runs on windows xp sp1, which has NO msvcr90.dll and msvcp90.dll in the C:\WINDOWS\WINSXS, it cannot load the codec plugin correctly.

    the folder structure is as following :
    myapp/
    myapp/qtcore.dll
    myapp/myapp.exe
    myapp/codecs
    myapp/codecs/qcncodecs4.dll
    myapp/Microsoft.VC90.CRT/
    myapp/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
    myapp/Microsoft.VC90.CRT/msvcm90.dll
    myapp/Microsoft.VC90.CRT/msvcp90.dll
    myapp/Microsoft.VC90.CRT/msvcr90.dll

    Finally, I tried to add A COPY OF "/Microsoft.VC90.CRT" to myapp/codecs, which looks as :
    myapp/
    myapp/qtcore.dll
    myapp/myapp.exe
    myapp/codecs
    myapp/codecs/Microsoft.VC90.CRT/
    myapp/codecs/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
    myapp/codecs/Microsoft.VC90.CRT/msvcm90.dll
    myapp/codecs/Microsoft.VC90.CRT/msvcp90.dll
    myapp/codecs/Microsoft.VC90.CRT/msvcr90.dll

    myapp/codecs/qcncodecs4.dll
    myapp/Microsoft.VC90.CRT/
    myapp/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
    myapp/Microsoft.VC90.CRT/msvcm90.dll
    myapp/Microsoft.VC90.CRT/msvcp90.dll
    myapp/Microsoft.VC90.CRT/msvcr90.dll

    This time , the application runs ok on windows xp sp1.
    And after I inspected the proccess using procexp.exe, I found that TWO INSTANCES of MSVCRT90 were loaded, ONE for qtcore.dll, ONE for codec/qcncodecs4.dll, while there was only ONE INSTANCE of qtcore.dll in the process.

    Why does the plugin use a different instance of msvcr90 from qtcore.dll, but the same instance of qtcore.dll as the caller?
    Last edited by qtofttt; 4th July 2010 at 16:24.

Similar Threads

  1. QtCore on an iPhone
    By bunjee in forum Qt Programming
    Replies: 1
    Last Post: 18th January 2010, 16:37
  2. Inside QtCore
    By falcon100 in forum Qt Programming
    Replies: 0
    Last Post: 18th November 2009, 12:42
  3. Replies: 0
    Last Post: 12th November 2009, 18:47
  4. Implementation for QtCore classes
    By suikodian in forum Newbie
    Replies: 5
    Last Post: 31st August 2009, 07:48
  5. Difference between QtCore4.lib and QtCore.lib
    By Barry79 in forum Installation and Deployment
    Replies: 0
    Last Post: 11th August 2009, 10:33

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Qt is a trademark of The Qt Company.