YY Voice starting from the 4.0 version is based on the QT development process, as well as the problems encountered

Source: Internet
Author: User
Tags vc runtime

Yiu Dong
Links: http://www.zhihu.com/question/21359230/answer/20127715
Source: Know
Copyright belongs to the author, please contact the author for authorization.

YY Voice from the 4.0 version is based on the QT framework development, and I am the technical leader of this project.

Decide whether to adopt a framework before the first to determine if there is a publishing problem, after all, yy voice as a service to tens of millions of of users of the client software, facing the user hardware and software environment is more complex, And once you encounter a problem such as the inability to install or not run the compatibility issues can result in a large number of user churn.

I test a lot of different hardware and software environment in the pre-research phase, QT itself is not a problem, the problem is more than the VC run-time library MSVCRT.

We are using the dynamic Link qt library, because YY voice code size is large, need to collaborate development of many people, different modules by the DLL partition is more convenient, static link is not realistic.

YY Voice uses the Qt 4.7.1 version.
QT Library and call its EXE DLL placed in the same directory on it, there is a problem to note, QT Image decoding library such as JPEG GIF decoding and so on is a plugin in the form of a release to bring QT imageformats inside of several DLLs, usually is Qjpeg4.dll Qgif4.dll Qico4.dll, in addition, in order for Qt to find these plugins need to be set under the QT plugin loading directory

Call Qcoreapplication::setlibrarypaths (libpaths) when the program starts; Put the directory where the Imageformats is located in the libpaths.

VC Runtime Library installation is a problem, yy voice is VC2008 compiler, starting from vc2005 Microsoft joined the manifest mechanism to control the load of the runtime library, no longer like vc2003 and previous versions as long as the EXE directory on the line. If the MSVCRT distribution package is installed on the user's machine, it is no problem, otherwise the program cannot run.
The simple way to do this is to put the Microsoft.VC90.CRT directory and directory files in the same directory as EXE.
In this case, if the application cannot find the system-installed MSVCRT, it will load its own copy.
Microsoft.VC90.CRT This directory can be found in the VC installation directory, search for it.

Assuming your app is installed in the <app install dir> directory, the structure of the app's post-installation directory might be like this.
<AppInstallDir>YourApp.ExeYourdll1.DllYourdll2.DllQtCore4dll qtgui4. DLL <imageformats> qgif4.< span class= "n" >dll qjpeg4. DLL qico4. DLL <microsoft. Vc90. Crt> microsoft. Vc90. Crt. Manifest msvcr90. DLL msvcp90. DLL                  


You can also download the installation directory under the YY voice reference file.

YY Voice starting from the 4.0 version is based on the QT development process, as well as the problems encountered

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.