The application cannot start the 0xc0150002 solution normally.
I have also encountered this problem. solution:
Solution 1: Select "no" for "enable incremental link" in "properties | configuration properties | linker | General" of the project ". This method blocks the source of the problem. Each time an exe file is generated, the inventory file is directly embedded, instead of deciding whether to update the inventory file based on the timestamp by default.
Solution 2: Do not embed the inventory file. In "properties | configuration tools | input and output" of the project, select "no" for "embedded list ", therefore, an inventory file is generated along with the generation of the exe file (by default, the file name is the full name of the exe file plus ". manifest ") to avoid the possibility of failure to embed the inventory file.
Thank you!
Recently I wrote an MFC program under VC6 in a project, and the result was uploaded to another machine (WIN7). The application initialization failed (0xc0150002, at that time, I thought it was a problem with WIN7. Later I copied the program to a WINXP SP3 program.
Why can't I run on another machine?
Start to google and find a solution. When an error occurs in the program running, right-click "my computer", click "manage", and then click "Event Viewer ", finally, let's take a look at the "System". The information is as follows:
(1) The ancillary Assembly Microsoft. VC80.DebugCRT cannot be found. The previous error was that the reference assembly was not installed on the system.
(2) failed to set Resolve Partial Assembly to Microsoft. VC80.DebugCRT. Reference error message: the reference assembly is not installed on the system.
(3) Generate Activation Context: C:/scanfile/Debug/libclamavd. dll failed. Refer to error message: the operation is successful.
It can be determined that a problem occurred when the libclamavd was loaded. After reading its manifest file, its dependent library is Microsoft. VC80.DebugCRT, the problem is obvious. This dll is compiled under VS2005, and other users do not have this environment, the compiled application is incorrectly generated due to the lack of a required Debug version VC Runtime Library.
Solution: Go to the vs2005 installation directory on my machine, and search for a string containing Microsoft. VC80.DebugCRT file. There are 3 dll files (msvcm80d. dll, msvcp80d. dll, msvcr80d. dll) and a manifest file (Microsoft. VC80.DebugCRT. manifest), copy to the project executable file directory on another user's machine, the problem is solved.
Several points can be found from this problem:
(1) make good use of tools to help locate problems: Event Viewer, depends walker, etc.
(2) search efficiency. For example, if the application fails to initialize normally, you can directly search for "0xc0150002" to obtain a lot of noise information...
PS: the solution on the Internet is to download vcredist_x86. I tried it...
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.