(Switch) solution to the "Application initialization failed (0xc0150002 )"

Source: Internet
Author: User
Tags vc runtime

Recently I have been programming ogre + cegui. In the vs2005 environment, the program can be compiled and generated in the release and debug modes smoothly. However, in debug mode, the program fails to run. The following prompt box is displayed. But it is normal under release. It's really a headache for TMD! You will find that

LDR: ldrpwalkimportdescriptor () failed to probe ***. DLL for its manifest, ntstatus 0xc0150002

 

There are three sidebyside errors in viewing system logs. The error message is as follows: "The affiliated Assembly Microsoft. vc80.debugcrt cannot be found. The previous error is that the reference assembly is not installed on the system. "

 

I found it in winsxs in the Windows XP system directory and found no files such as x86_microsoft.vc80.debugcrt.

Now the cause of the problem is much clearer. The compiled application has errors due to the lack of a required debug version of the VC Runtime Library. Therefore, there are multiple solutions.
  • Method
Install the VC Runtime Library (Debug). In the vs2005 directory, enter the VC edist Directory, which stores the VC Runtime Library in the release and debug modes, copy the required DLL library file and manifest file to your application directory. Click it and you will find that the program can run! PS:In this programming, I linked to the ceguibase_d.dll dynamic link library. The application error is due to this library. So I went to the cegui SDK directory and looked at the manifest file that generated the library. open the file and you will find that there are two dependency runtime libraries as shown in, that is, two versions of the VC Runtime Library, "Microsoft. vc90.debugcrt "version =" 9.0.21022.8 "and" Microsoft. vc80.debugcrt "version =" 8.0.50727.4053 ".

Why does a library depend on two versions of VC at the same time ?? Confusing !!!

Check the cegui SDK solution. to generate the ceguibase_d.dll library, you need the source file of ceguibase. In addition, you need a dependences that contains the required library of ceguibase. Since this library has been generated during download, I think: ceguibase_d.dll depends on two runtime libraries because the libraries it depends on are generated in another compiling environment. This makes it easy to find that ceguiogrerenderer is generated in the ceguiogrerenderer project of the same solution. the DLL file is also accompanied by its manifest file. You can find that it only depends on the runtime of a VC, that is, the runtime of the current compiling environment.

Therefore, the solution to this problem can be as follows:: Download the corresponding dependences library file, or download the source code of the dependent library file and recompile it. The ultimate goal is to make the library dependent on the VC Runtime Library version used in the current compilation environment. Recompile it and you will be surprised to find that the current manifest file only depends on one VC Runtime Library. Haha, that's all!

 

Note: This is an original one. It is not easy !!!!

For your reference only!

 

 

 

Note that using the dependency Walker tool, you can view the libraries that the program depends on !!!!

Supplement: Details

1.Http://blog.csdn.net/wengyb/archive/2009/07/09/4335092.aspx

2. http://blog.csdn.net/avagrant158/archive/2009/10/28/4737212.aspx

 

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.