Compile an open-source project today. He provides the project of VC9. On my side, it is VC10. First, it needs to be converted after it is opened. Everything works normally. then compile the project, A simple and small error occurs. After the change, it is compiled, but the error shown during running is displayed.
650) this. width = 650; "onclick = 'window. open (" http://blog.51cto.com/viewpic.php? Refimg = "+ this. src) 'style = "width: pixel PX; height: 120px" border = "0" alt = "" width = "160" height = "120" src = "http://www.bkjia.com/uploads/allimg/131228/1J5325913-0.jpg"/>
"Application Initialization is normal oxc0150002)" failed. Click "OK" to terminate the application.
Then debug the output information to view the following information:
- LDR: LdrpWalkImportDescriptor () failed to probe F: \... \ libpng. dll for its manifest, ntstatus 0xc0150002
- Debugger: An unhandled exception is thrown during process loading.
- The program "[1964] Helloworld-win32.exe: Local" exited and returned value is-1072365566 (0xc0150002 ).
This situation is more common at that time. Generally, it is a link library problem, and there are many questions asked online. Here I will explain it. The error message is libpng. dll. Open the dll and check it. Is the version of the dll:
650) this. width = 650; "onclick = 'window. open (" http://blog.51cto.com/viewpic.php? Refimg = "+ this. src) 'style = "width: 359px; height: 308px" border = "0" alt = "" width = "160" height = "120" src = "http://www.bkjia.com/uploads/allimg/131228/1J5322405-1.jpg"/>
Basically, there is no error in the version information. Now we can only view the binary information of the DLL. After opening it, we finally find the problem, as shown in:
650) this. width = 650; "onclick = 'window. open (" http://blog.51cto.com/viewpic.php? Refimg = "+ this. src) 'style = "width: 533px; height: 499px" border = "0" alt = "" width = "540" height = "579" src = "http://www.bkjia.com/uploads/allimg/131228/1J532O30-2.jpg"/>
The selected part contains "name =" Microsoft. VC90.DebugCRT "version =" 9.0.21022.8 "", the name value here indicates that the DLL is compiled using VC9.0 and Debug, while the version value is a version number, which is a bit depressing, since it is a release, why do we need to compile the Debug version? The Debug version must be highly consistent in the environment to be compatible. The release version does not have these problems. How can this problem be solved?
Method 1:Uninstall VC10 and modify VC9. This is troublesome.
Method 2:The corresponding version of "Microsoft. VC90.DebugCRT "is copied to system32, which is generally located in the redist folder in the installation directory of VC, as shown in. x64 and x86 Under the selected Debug_NonRedist indicate that it is used by the Debug version, the other two x64 and x86 versions are in the release version. VC10 is used for the time being. The path is Microsoft Visual Studio 10.0 \ VC \ redist \ Debug_NonRedist \ x86.
650) this. width = 650; "onclick = 'window. open (" http://blog.51cto.com/viewpic.php? Refimg = "+ this. src) 'border =" 0 "alt =" "src =" http://www.bkjia.com/uploads/allimg/131228/1J532O37-3.jpg "/>
Method 3: Find the source code of libpng and compile the DLL by yourself ).
Therefore, we need to pay attention to this issue when releasing programs in the future to avoid such incompatibility.
This article is from "yarin's blog™Blog, be sure to keep this source http://yarin.blog.51cto.com/1130898/422187