VC2005-应用程序正常初始化失败-0xc0150002
VC++2005编译出程序在XP下执行出错的解决方法
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\atlmfc\lib\atls.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\ws2_32.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\shell32.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\comctl32.lib:
修改成Multi-threaded(/MT)
修改了Runtime类型以后
需要将MFC的编译类型也改成静态库
Project->Property->configurationProperties->General->UseofMFC
修改成UseMFCinaStaticLibrary
一部分情况下在这步就能解决问题
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\winspool.lib:
Searchingd:\ProgramFiles\MicrosoftVisualStudio8\VC\PlatformSDK\lib\advapi32.lib:
而动态MFC库使用的是Multi-threadedDLL(/MD)
应用程序配置不正确或初始化失败
与VC6不同, VC2003、VC2005、VC2008及其后续版本,引入了manifest清单的概念,即应用程序编译后会同时生成对应的.manifest文件,并将该.manifest文件作为资源编译到dll或者exe中去。
manifest文件实际上是一个XML格式的文本文件,里面记录了dll或exe中要引用的CRT、MFC、ATL库的版本和名称。
VC6编译的应用程序对CRT、MFC、ATL的dll都是直接调用,而VC2003、VC2005、VC2008编译的程序都是先查询编译到资源中的manifest中的记录,然后按照记录提供的版本和名称去搜寻对应的CRT、MFC、ATL库,搜索路径为环境变量中定义的路径,若搜索到的文件版本号不匹配,则不会调用,从而导致应用程序配置不正确,程序无法启动或初始化失败等错误(相关信息可以在电脑日志中查看得知)。
DLL的版本信息可以使用HA-eXeScope650-moming.exe软件查看,如下图所示(红色框内既为版本号):至于你系统内的版本号,可以到VS安装目录下的查看,本文以VS2008 CRT库为例:可以看到,其版本号均为9.0.30729.4148,于上面DLL的一致,故不会存在问题VS2008的使用库目前为止分为三个版本:●没有打过任何补丁的VS2008该版本对应的CRT/MFC/ATL库的版本号为9.0.21022.8。
●2、打过SP1补丁的VS2008和KB973675补丁打过该补丁后,系统中存在着两个版本的CRT/MFC/ATL库,版本号分别为9.0.21022.8和9.0.30729.1,这导致了manifest文件中记录的版本号和实际库的版本号不一致(程序要求它们的版本号一致才能运行)。
这时需要在工程设置中增加一个宏定义_BIND_TO_CURRENT_VCLIBS_VERSION,该宏定义于C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtassem.h文件中,然后重新编译程序。
vs2005+ ogre 出现“应用程序正常初始化(0xc0150002)失败”
vs2005+ ogre 出现“应用程序正常初始化(0xc0150002)失败”的解决方法我用vs2005+ogre SDK里的例子编译运行,出现了“应用程序正常初始化(0xc0150002)失败”的错误,之后看了很多帖子解决了问题.如果vs2005,不是sp1的,要打sp1的补丁,vs2005中文版补丁是 VS80sp1-KB926604-X86-CHS.exe,400多M英文版要用另外一个 ,具体名字不记得。
然后打完补丁再装vcredist_x86.exe 这个比较小,就十几M。
如果上面的步骤都进行过了还不行,要再打个补丁/download/D/2/3/D23F9F62-3DEE-4EC0-B3B9-D64E9F573D1F/VS80sp1-KB971090-X86-INTL.exe注意,这个不是一般情况下说的sp1补丁,sp1是KB926601,400M左右,这个是KB971090,200M左右(1)打sp1的补丁下载地址1为:/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe(英文版)下载地址2为:/download/8/0/7/8071514d-9370-45c3-8af1-4ff09a70e59d/VS80sp1-KB926604-X86-CHS.exe(中文版)大约为430M。
(2)装vcredist_x86.exe/soft/16405.html<注意双击vcredist_x86.exe,不要双击Setup.exe。
>(3)下载安装VS80sp1-KB971090-X86-INTL.exe/download/D/2/3/D23F9F62-3DEE-4EC 0-B3B9-D64E9F573D1F/VS80sp1-KB971090-X86-INTL.exe注意,这个不是一般情况下说的sp1补丁,sp1是KB926601,400M 左右,这个是KB971090,200M左右。
应用程序初始化失败问题(Applicationinitializationfailed)
应用程序初始化失败问题(Application initialization failed)The application failed to initialize _~ ~!Application initialization failed (oxc0000005) reasons and Solutions1, Microsoft IE buffer overflow vulnerability caused2, memory or virtual memory address conflict program needs to be allocated to address certain procedures to use, when new procedures for the use of space to release at the end of the program, win is a multi tasking system before the program does not end sometimesThere is a new task to how much memory or virtual memory to ensure that we run at the same time the task? Perhaps win on this issue is not ready, so the errors often occur, the general operation of the large-scale software or multimedia3, poor memory will appear this problem in general, memory problems are not likely, the main aspect is: bad memory, memory quality problems, there are 2 different brands of different memory mixed interpolation, are more prone to incompatible situation, but also pay attention to the heat problem, especially after overclocking. You can use the MemTest software to check memory, which can thoroughly detect the stability of memory. If you are dual memory, and the memory of different brands, mixed in, or bought a secondary memory, this problem occurs, then you have to check whether the memory problems, or incompatible with other hardware.4, Microsoft WINDOWS system vulnerabilities, windows memory address 0X00000000 to 0X0000ffff designated as assigned null pointer address range, if the program attempts to access this address, is considered to be wrong. Programs written by c/c++ usually do not undergo rigorous error checking and return null pointers when malloc is used to allocate memory and the assigned address space is insufficient. However, the code does not check this error, considers that the address assignment has been successful, so it accesses the address of the 0X00000000, so memory violation access occurs, and the process is terminated. The following ASCII character fill consisting of PIF file: an illegal PIF file (filled with a ASCII character \''x\'') at least 369 bytes, the system was considered to be a valid PIF file, 0] will display to the PIF icon, [pifmgr.dll, will have a program, font, memory, screen etc. the contents in the attributes. And when a non PIF file is 369 bytes in size, the program's error is not detected even if it is 370 bytes. When a PIF file is larger than 369 bytes for illegal property "program" page, Explorer will go wrong, that \''***\''Command Reference \''***\'' memory. This memory cannot be \''read\''The problem is in the 16 hexadecimal address of the PIF file: 0x00000181[0x87]0x00000182[0x01] and0x00000231[0xC3]0x00000232[0x02] even if it's a legitimate PIF file, it can cause program errors whenever you change any of these places. As long as the value of 0x00000181 and 0x00000182 is changed to [0xFF][0xFF], any change of other addresses will not cause errors.5, there may not be a Apache service is installed correctly,and started its service in the cause; OracleOraHomeXXHTTPServer to stop6, the application does not check the memory allocation failure procedure requires a memory to save the data, you need to call the operating system to provide a "function" to apply, if successful memory allocation, memory area function will be the new return to the application, the application can use this memory via this address. This is the "dynamic memory allocation", the memory address, that is, "pointer" in programming". Memory is not always available, endless, and sometimes memory allocation will fail.When the allocation fails, the system function returns a 0 value, when the return value "0" does not represent the newly enabled pointer, but rather a notification issued by the system to the application informing the error. As an application, in the memory after each application should check whether the return value is 0, if it is, it means that there is a fault, some measures should be taken to save, which enhances the robustness of the program "". If the application does not check the error, it will continue to use this memory in subsequent operations, in accordance with the thinking inertia that the value is the pointer that is allocated to it. The real 0 address memory area holds the most important "interrupt descriptor table" in the computer system and absolutely does not allow the application to use. In the operating system without protection mechanism under (such as DOS), write data to this address will lead to crash immediately, and in the robust operating system, such as Windows, this operation will be immediately captured the protection mechanism of the system, the result is forciblyclosed by the operating system application error, in order to prevent the error expansion. At this point, the above "write memory" error occurs and indicates that the referenced memory address is "0x00000000"". Memory allocation failure, many reasons, memory is insufficient, the version of the system function mismatch, and so may have an impact. Therefore, the distribution of failure in the operating system to use for a long time, the installation of a variety of applications (including accidentally "Install" virus program), after the change of system parameters and system of a large number of documents.7, the application due to its unusual BUG quoted the memory pointer in the application using dynamic allocation, sometimes there will be such a situation: the program attempts to write a "should be available" in memory, but I do not know why, it is expected that can be a pointer has been a failure. There may be "forget" to the operating system requirements distribution, or it may be the program itself at some point has canceled the memory, and "no attention" and so on. Off the system memory to be recycled, the access does not belong to the application, read and write operations can also trigger a mechanism to protect the system, trying to "end" illegal procedures only termination of the operation is to be run, all resource recovery. The laws of the computer world are still much more effective and harsher than human beings! A situation like this belongs to the BUG of the program itself, and you can often reproduce errors in a particular order of operations. The invalid pointer is not always 0, so the memory address in the error is not necessarily "0x00000000", but rather the other random numbers.If the system often mentions errors, the following suggestions might help:1. check whether there is a Trojan horse or virus in the system. In order to control the system, such programs often change the system without responsibility, resulting in abnormal operating systems. Generally, we should strengthen the awareness of information security and not be curious about the executable programs of unknown sources.2. update the operating system so that the operating system's installer re copies the correct version of the system file and changes the system parameters. Sometimes, the operating system itself will have BUG, pay attention to install the official release of the upgrade program.3. try out a new version of the application.4, delete, and then recreate the WINDOWS\Wbem\RepositoryFile in the folder: right click on my computer on the desktop, and then click manage. Under services and applications, click service, then close and stop Windows ManagementInstrumentation service. DeleteWINDOWS\System32\Wbem\RepositoryAll files in the folder. (create a backup copy of these files before deleting.) Open the service and application, click service, and then open and start Windows ManagementInstrumentation service. When the service restarts, these files are recreated based on the information provided in the following registry key:hkey_local_machine \软件\微软\ \ \”MOFs CIMOM WBEM下面我从几个例子给大家分析:例一:打开IE浏览器或者没过几分钟就会出现”0x70dcf39f”指令引用的”0x00000000”内存。
VC++应用程序无法正常启动0xc0150002
VC++应⽤程序⽆法正常启动0xc0150002 使⽤VC++开发软件,编译后的程序打不开,弹出错误框: 使⽤Dpends Walker查看依赖项,没有什么异常。
然后,右键“计算机”,选择“管理”,打开计算机管理,在左侧树形结构中,选择“系统⼯具 -> 事件查看器 -> Windows⽇志 -> 应⽤程序”,找到最近事件的应⽤程序错误: 错误就发⽣在vld_x86.dll上,该dll与应⽤程序在同⼀⽬录下,XML描述如下: <Event xmlns="/win/2004/08/events/event">- <System><Provider Name="SideBySide"/><EventID Qualifiers="49409">33</EventID><Level>2</Level><Task>0</Task><Keywords>0x80000000000000</Keywords><TimeCreated SystemTime="2016-11-28T07:20:04.000000000Z"/><EventRecordID>8786</EventRecordID><Channel>Application</Channel><Computer>Michael</Computer><Security /></System>- <EventData><Data>Microsoft.DTfW.DHL,processorArchitecture="x86",type="win32",version="6.11.1.404"</Data><Data /><Data /><Data /><Data /><Data /><Data /><Data /><Data /><Data /><Data>D:\*\vld_x86.dll</Data><Data /><Data /><Data /><Data /><Data /><Data /><Data /><Data /><Data /></EventData></Event> 该dll是使⽤Visual Leak Detector for Visual C++ 运⾏时要依赖的dll,发现是拷贝过来的⽂件不全,缺⼀个清单⽂件(Microsoft.DTfW.DHL.manifest),最好将下列三个⽂件(C:\Program Files (x86)\Visual Leak Detector\bin\Win32)全部拷贝过来:dbghelp.dllMicrosoft.DTfW.DHL.manifestvld_x86.dll 备注:未安装Visual Leak Detector for Visual C++的请先安装!。
应用程序正常初始化(0xc0000005)失败
应用程序正常初始化(0xc0000005)失败说明文字:PAGE-FAULT-IN-NONPAGED-AREA通常的原因:内存错误(数据不能使用分页文件交换到磁盘中).解决方法:卸掉所有的新近安装的硬件.运行由计算机制造商提供的所有系统诊断软件.尤其是内存检查.检查是否正确安装了所有新硬件或软件,如果这是一次全新安装,请与硬件或软件制造商联系,获得可能需要的任何Windows更新或驱动程序.禁用或卸载所有的反病毒程序.禁用BIOS内存选项,例如cache或shadow.应用程序初始化内存分配错误。
0xc0000005错误发生的诱因主要分为四大类:1、自由表存储载体的缺陷(主要体现在VCX、VCT,SCX和SCT上)。
2、第三方监控性质的软件。
(如:防毒软件在内存即时监控状态下、词霸软件在全屏拾取模式下等);3、VisualFoxpro自身的代码漏洞;4、硬件因素。
建议断开网络,然后关闭防火墙,再安装试试,如果不行,重启电脑再试,再不行则归类为程序缺陷了。
存不能为“read”或“written”的解决方案有些人运行飚车程序的时候会弹出该内存不能为“read”的错误提示。
希望以下文章能对大家有所帮助。
使用Windows操作系统的人有时会遇到这样的错误信息,运行某些程序的时候,有时会出现内存错误的提示,然后该程序会自动关闭或点击后关闭,严重的会无法关闭。
“0x????????”指令引用的“0x????????”内存。
该内存不能为“read”。
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。
不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。
)散一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。
1、微软IE缓冲溢出漏洞引起2、内存或虚拟内存地址使用冲突造成程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统有时前程序未结束又有新的任务开始到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况3、劣质内存条也会出现这个问题一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。
vs2005编译的程序不能启动大致有两个原因
如果是debug版, 就复杂一些了, 首先要确定你需要的DLL的版本, 绝大多数(注意:不是"所有")情况下它和编译器的版本相同, 通过vs2005的关于对话框就能看到, 如下图所示:
确定版本后, 在开发组的机器上进入“%windir%\winsxs"文件夹(下面将以x86平台8.0.50727.762版本的debug CRT为例进行说明) 需要依版本号而定的部分用加粗表示, 拷贝以下文件到目标机器的相同位置即可:
2. 开发机运行正常, 换到其它机器上就不行了
这一般就是系统DLL(包括CRT, MFC, ATL等)没有正确配置导致的。
如果程序是release版, 那么很简单, 只要把“\SDK\v2.0\Boovcredist_x86.exe"拷贝到目标机器上运行即可.(解释一下——拷贝这个程序到目标机然后运行,像是装了一个什么东西。装完了以后再运行用平台开发出来的程序,如果还提示有什么DLL找不到,那就把开发机上相应的DLL拷贝出来,贴到用户机中相应的文件夹里面。比如一个MFC的什么DLL找不到,在开发机上搜索这个DLL,记住它的路径,然后按这个路径贴到用户机上。) 这是以x86平台为例的, 如果你用的是别的CPU平台(amd64或ia64)把x86替换成相应的内容就可以了。
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f文件夹下所有文件;
Manifests文件夹下
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.cat
x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.manifest
WIN7下QQ打不开,应用程序无法正常启动(0xc0150002)
WIN7下QQ打不开,应用程序无法正常启动(0xc0150002)(2010-07-19 09:10:17)转载标签:itWIN7下QQ打不开,应用程序无法正常启动(0xc0150002)有的网友在装完WIN7后,会立即安装QQ,但是在装完QQ后才发现,QQ根本打不开,出现:应用程序无法正常启动(0xc0150002)的错误信息,笔者也遇到了这个情况,不管是QQ2010还是QQ2009,均出现上述错误提示!可尝试以下2种方法:1:开始菜单-重启系统,不要按机箱上的重启按钮强制重启。
重启完毕后再打开QQ看看。
ps:在重启的时候,屏幕会显示正在安装已下载的更新,在这些更新中,可能会包含下面链接的更新,也就是支持QQ运行的VC库,等我们安装完这个更新并重启后,QQ就能打开了!2:如果上述方法仍未解决,点击下面的链接下载VC库,下载安装后,再重启系统就能打开QQ了!/s/blog_5d2ced280100isvs.html有一位网友给笔者来信问道:是不是一定要让电脑联网完成更新之后,才可装其它软件?其实这个担心也是有一定道理的,比如某些软件需要VC库和.Net的支持,但是像这样的需要安装系统的某一个更新才能使用的软件毕竟还是少数,所以大家在装完WIN7后,可以立即安装其他软件!!强烈推荐:优盘已不再中毒,三步打造彻底防毒的优盘/s/blog_5d2ced280100k6f0.html桌面图标不能删除的解决方法/s/blog_5d2ced280100itle.html如果你的右键菜单没有“运行桌面清理向导”、桌面属性的自定义桌面中也没有“现在清理桌面”选项,请参考文章:/s/blog_5d2ced280100iuvn.html动手美化你的优盘,为你的优盘添加图像背景/s/blog_5d2ced280100k6pu.html关闭系统的自动更新方法如下,与上面的QQ打不开无任何关系,大家觉得没必要就可以关闭了:开始菜单,在搜索框中输入服务,打开服务。
解决应用程序正常初始化(0xc0000135)失败
解决应用程序正常初始化(0xc0000135)失败应用程序正常初始化(0xc0000005)失败说明文字:PAGE-FAULT-IN-NONPAGED-AREA通常的原因:内存错误(数据不能使用分页文件交换到磁盘中).解决方法:卸掉所有的新近安装的硬件.运行由计算机制造商提供的所有系统诊断软件.尤其是内存检查.检查是否正确安装了所有新硬件或软件,如果这是一次全新安装,请与硬件或软件制造商联系,获得可能需要的任何Windows更新或驱动程序.禁用或卸载所有的反病毒程序.禁用BIOS内存选项,例如cache或shadow.应用程序初始化内存分配错误。
0xc0000005错误发生的诱因主要分为四大类:1、自由表存储载体的缺陷(主要体现在VCX、VCT,SCX和SCT上)。
2、第三方监控性质的软件。
(如:防毒软件在内存即时监控状态下、词霸软件在全屏拾取模式下等);3、VisualFoxpro自身的代码漏洞;4、硬件因素。
建议断开网络,然后关闭防火墙,再安装试试,如果不行,重启电脑再试,再不行则归类为程序缺陷了。
存不能为“read”或“written”的解决方案有些人运行飚车程序的时候会弹出该内存不能为“read”的错误提示。
希望以下文章能对大家有所帮助。
使用Windows操作系统的人有时会遇到这样的错误信息,运行某些程序的时候,有时会出现内存错误的提示,然后该程序会自动关闭或点击后关闭,严重的会无法关闭。
“0x????????”指令引用的“0x????????”内存。
该内存不能为“read”。
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。
不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。
)散一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。
1、微软IE缓冲溢出漏洞引起2、内存或虚拟内存地址使用冲突造成程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统有时前程序未结束又有新的任务开始到底要多少内存或虚拟内存来保证我们同时运行的工作任务呢?也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况3、劣质内存条也会出现这个问题一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。
使用VC2005一些问题及解决方案(一)
使用VC2005一些问题及解决方案(一)首先是我使用VC2005在不通阶段的不通感受:刚开始安装VS2005时候感觉:真是大啊!装了我一个上午!!而且运行个VC有时能耗我好大的内存。
刚使用VC2005时候的感受:界面挺不错,貌似功能更强大,对C++标准支持的很好,还可以用我最喜欢的Comic Sans MS字体,还支持代码收缩等等。
虽然比较慢,但是不像VC6. 0那样老是出现编译死机的情况。
开始用VC2005学习写东西的时候的感受:实在没有6.0好用,限制太多,很多地方跟VC6. 0不一样,而且很多功能似乎都找不到了。
还不如6.0方便。
使用一段时间的感受:虽然经常遇到问题但是都是有很好的解决方案的,而且相对6.0,2005的BUG少很多,总体来说如果机器配置还算可以的话,用2005是挺不错的。
下面就是我使用VC2005遇到的以及解决了的问题:VC遇到的以及解决了的问题1,对于Radio控件如何正确设置属性Group?首先要确保几个Radio控件的Tab是按顺序的(可以在对话框编辑器中按Ctrl+D将三个控件T ABORDER设置在一起)。
然后对第一个Radio控件选择Group属性,其他的不用选。
对第一个控件添加关联变量int m_test,并且设置初值-1,则当我们点击第一个控件m_test值是0,点击第二个m_test值是1....依此类推。
2,VC2005中添加虚函数问题:在VC6.0中可以对类右键添加虚函数,在VC2005中需要在类属性中点击一个重写按钮,在那里添加虚函数。
3,VC2005动态添加右键菜单问题:在VC6.0中我们可以在Project->Add To Project->Component and Control中添加组件,如添加Pop-up Menu可以实现添加右键快捷菜单的功能。
但是在VC2005中我们没有这个功能,但是我们可以手动自己添加,也不是很复杂。
步骤如下(假设工程是一般MFC视图工程命名Menu):1,自己添加一个Menu资源,例如命名为IDR_MENU1,编辑之。
应用程序正常初始化失败
完全注册dll:打开“运行”输入→cmd→回车
然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。
(下面是要运行的代码):
内存不能为read/written 问题的简单解决办法:(原创答案,欢迎分享→请活学活用→仅供参考):
一、硬件的可能性是比较小的,如果是硬件,那就应该是内存条跟主机不兼容的问题导致的 如果能排除硬件上的原因(内存条不兼容,更换内存。内存条松动或积累灰尘,重新拔插并清理灰尘)往下看:
二、系统或其它软件引起的,可用下述方法处理:系统本身有问题,及时安装官方发行的补丁,必要时重装系统。 病毒问题:杀毒 。杀毒软件与其它软件冲突:卸载有问题的软件。显卡、声卡驱动是否正确安装或者是否被恶意覆盖否?重新安装显卡声卡驱动。
2、安装过的Domino这程序导致有问题,你可以在开始→运行→msconfig→启动项目→关闭Domino启动项→如果关闭不了→可以用卡卡助手之类的系统设置软件把它强行关掉→如果还是不行的→证明你系统中毒→那就重新安装或者恢复系统备份彻底解决。
三、某些系统服务被禁用可能导致类似问题,例如QoS RSVP本地通信控制安装功能被禁用时可能会提示RPC服务器不可用。解决方法:我的电脑右键→管理→服务和应用程序→服务→双击QoS RSVP项目将启动类型改为“手动”或“自动”→关闭窗口→重新启动计算机。如果其它服务被禁用导致的问题也可用这个方法重新启用来解决。
四、浏览器出现内存不能读、写的提示:
1、运行→regedit→进入注册表, 在→
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks
电脑运行应用程序失败出现运行库错误的问题及解决方法汇总
电脑运行应用程序失败出现运行库错误的问题及解决方法汇总不少用户在电脑中遇到了运行程序后,提示错误无法打开的情况,而其中提示的错误又有所不同,可能是软件本身安装不完整,或软件不兼容系统等。
本文将提供电脑运行应用程序失败出现运行库错误的问题及解决方法汇总供大家了解,希望对大家有所帮助一、缺少d3dx9_xx.dll打开一些游戏,可能会收到这种错误提示“无法打开此程序,因为计算机中丢失d3dx9_xx.dll(xx不一定是哪个数),比如以下情况:暂时性解决方法:遇到这种错误,许多人首先想到,直接去百度上搜缺少的那个d3dx9文件,下载下来放入游戏目录,这种方法用后,一般该游戏还真能进去了,但是,这实际上是一种治标不治本的方法。
因为把d3dx9下载到游戏目录里面,虽然这个游戏能玩了,但是别的游戏很可能还会因为缺失这个文件而进不去,这时又得把这个d3dx9再复制到另一个游戏的目录,而且,这个游戏要d3dx9_43,说不定另一个游戏要的是46或者39或什么的,这又得去再找缺失的另一个d3dx9文件下载,如此反复,非常麻烦。
实际上,这种d3dx9_xx缺少的错误,不是因为游戏目录中缺少这个文件(这个文件根本就不是游戏目录里自带的),而是电脑上没有安装完整的directx。
directx是微软开发的一个游戏运行库,现在多数游戏都需要这个运行库来运行,而d3dx9文件正是这个运行库里面的东西。
最好解决方法:网上下载一个DirectX Redist 2010.6,大小有个8,90mb,安装这个时,进度条里会看到一个接一个的d3dx9_xx.dll被安装到电脑的系统目录下。
安装完成后,本来提示缺少文件的游戏就能打开了。
目前许多大型游戏的CommonRedist或Redist里面都有这个DirectX运行库的安装程序,一般为dxwebsetup,这个是DirectX的在线安装版本,需要网络连接才能安装,当然也有少数游戏(如cod11)里面直接集成了完整版的DirectX运行库安装程序。
应用程序正常初始化0xc0000142失败
“应用程序正常初始化0xc0000142失败,请单击确定,终止应用程序”解决办法偶尔出现无所谓我所熟悉的0X000000该内存不能为read的解决方法硬件:电脑硬件是很不容易坏的。
内存出现问题的可能性并不大(除非你的内存真的是杂牌的一塌徒地),主要方面是:1。
内存条坏了(二手内存情况居多)、2。
使用了有质量问题的内存,3。
内存插在主板上的金手指部分灰尘太多。
4。
使用不同品牌不同容量的内存,从而出现不兼容的情况。
5。
超频带来的散热问题。
你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。
二、如果都没有,那就从软件方面排除故障了。
原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在缓冲区,需要操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。
这就是“动态内存分配”,内存地址也就是编程中的“光标”。
内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。
当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的光标,而是系统向应用程序发出的一个通知,告知出现了错误。
作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。
若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用光标,继续在之后的执行中使用这块内存。
真正的0地址内存区储存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。
在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即当机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。
这时候,就会出现上述的内存不能为“read”错误,并指出被引用的内存地址为“0x00000000“。
应用程序初始化失败的解决方案
完全注册dll:打开“运行”输入→cmd→回车
然后把下面这行字符复制到黑色cmd框里面去回车等待dll文件全部注册完成就关闭可以了,为防止输入错误可以复制这条指令,然后在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。
(下面是要运行的代码):
2、打开CMD窗口输入如下命令:
for %i in (%windir%\systemБайду номын сангаас2\*.dll) do regsvr32.exe /s %i 回车
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回车
两条分别运行完成后重启机器。
应用程序正常初始化(0xc0000135)失败.请单击确定 ,终止应用程序”
内存不能为read/written 问题的简单解决办法:
请活学活用→仅供参考:
一、硬件的可能性是比较小的,如果是硬件,那就应该是内存条跟主机不兼容的问题导致的 如果能排除硬件上的原因(内存条不兼容,更换内存。内存条松动或积累灰尘,重新拔插并清理灰尘)往下看:
七、关闭这个报告(治标不治本):
1、右击桌面上“我的电脑”→属性→高级→错误报告→错误汇报→勾选“禁用错误汇报”→“但在发生严重错误时通知我”复选框→确定。这样处理对于一些小错误,Windows XP就不会弹出错误提示了。
2、如果不行彻底关闭错误报告服务。开始→运行中输入→services.msc→打开“服务”窗口→找到“Error Reporting Service”→打开“Error Reporting Service的属性”对话框→将“启动类型”改为“已禁用”→确定后重新启动系统。(此项目关闭的注册表方式:开始→运行→输入regedit→确定→找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]中的Auto=0改成Auto=1)
电脑提示应用程序正常初始化失败如何解决 优质课件
电脑提示应用程序正常初始化失 败如何解决?
• 很多时候我们用电脑打开程序时,会提 示“应用程序正常初始化(0xc0000142) 失败”的问题,遇到这样的问题一时也不 知道怎么解决好。这对很多用户来说是个 很烦的事,不知道如何解决?那下面就和 大家说一下如何解决应用程序正常初始化 失败的问题。
• 具体步骤如下:
• 1、软件冲突,至少是两个或者两个以 上的软件之间吧,卸载近期安装的软件, 可以使冲突一方退避,解决软件冲突之后, “应用程序正常初始化失败”的问题也将 迎刃而解。
• 2、病毒造成这样的问题,用户可以安装 杀毒软件杀毒试试看,如果不能解决就直 接重新安装系统,新系统就不存在这样的 问题了,一般都是病毒破坏了系统文件造 成的。
/
• 3、如果找不到原பைடு நூலகம்,用户可以尝试开 机按F8不动到高级选项出现再松手,选 “最近一次的正确配置”回车修复,有时 候这样也能解决。
• 4、用系统修复光盘或者工具,尝试修 复系统,系统修复完毕,此问题也许能够 解决。
• 5、有时候硬件问题也会导致此问题的 发生,自己可以把内存重新拔插一下,并 且清理一下内存的金手指,主板灰尘也清 理一遍。
• 如何解决应用程序正常初始化失败的问题 就介绍到这里了。如果你们在使用电脑过 程中有遇到这样的问题,可以按照上述的 步骤去操作,这样就可以帮你解决问题了。 希望对遇到同样问题的用户能有所帮助, 不妨去试一下!
• 返回系统之家首页
• Jjhl7684dggds如果你想学到更多的电脑知 识请随时关注系统114,记住我们的官方网 站:系统之家下载站
VISAL2005编译时程序无法启动解决办法
Visual Studio编译Win32 控制台应用程序时提示“无法启动程序”
对于编程语言初学者来说,能使用编译工具正常的做个实验,运行一下自己的写的或者从资料上下载的代码,然后能出一个结果是一件很快乐的事情。
但是由于编程教材甚至网络上都很难找到指导初学者一步一步创建项目的过程,所以刚开始很容易出错。
下面就以Visual Studio 2005为例,介绍学习C++语言时创建Win32控制台应用程序的方法以及出现问题的处理过程中。
第一步,新建一个空项目,文件—新建—项目。
第二步,新建Win32控制台应用程序,并选择项目存放的路径,输入项目的名称,然后点击“确定”按钮。
第三步,进行应用程序设置。
选中窗口左侧的“应用程序设置”,各类设置下图默认即可,点击完成。
第四步,新建源文件。
文件—新建—文件
第五步,类别选择Visual c++,模板选择C++文件(.cpp),然后选择打开。
第六步,在新打开的源文件中输入你需要运行的源码,并按CTRL+F5运行程序。
这时候我们发现系统给出如下的提示。
第六步,选择文件—源1.cpp另存为。
注意:保存路径一定要选择自己创建项目时的路径,如下图所示,文件名称可以和项目名称一致。
第七步,先把解决方案资源管理器调出来,视图—资源管理器,如下图所示。
选择左侧的源文件并点右键,添加—现有项,从查找范围中选择自己刚才保存的路径中找到已经保存的CPP文件,选中然后添加即可。
第七步,再次按CTRL+F5运行程序,发现程序已经可以正常输出。
Win10打开软件报错“应用程序无法正常启动0xc0150002”解决方法图文教程
Win10打开软件报错“应⽤程序⽆法正常启动0xc0150002”解决⽅法图⽂教程最近win10⽤户反映,在打开某软件时,系统会弹出“应⽤程序⽆法正常启动(0xc0150002 )”的错误提⽰框,出现这种问题⼀般是由于microsoft visual c++没有安装导致程序⽆法在环境中运⾏引起的,那么遇到这种问题该如何解决呢?本篇教程就为⼤家解决win10系统打开软件报错“应⽤程序⽆法正常启动0xc0150002”的问题。
解决办法:VC++运⾏库合集安装包Visual C++ AIO Installer V’ v2019.05.21 ⼀键⾃动安装版类型:编程⼯具⼤⼩:28.3MB语⾔:简体中⽂时间:2019-05-28查看详情1、⾸先下载”Visual C++ AIO Installer V’运⾏库合集安装包”(此VC运⾏库合集包含(32/64位系统通⽤):Microsoft Visual C++ 2005 Redistributable – 8.0.50727.5706 x86/x64 Microsoft Visual C++ 2008 Redistributable –9.0.30729.7523 x86/x64Microsoft Visual C++ 2010 Redistributable – 10.0.40219.473 x86/x64 Microsoft Visual C++ 2012 Redistributable –11.0.61135.400 x86/x64Microsoft Visual C++ 2013 Redistributable – 12.0.40664 x86/x64);2、下载后直接双击运⾏Visual C++ AIO应⽤程序即可;3、在安装的时候勾选全系列的visual c++(有2005、2008、2010/2012等等)然后点击 next 进⾏安装即可!4、完成安装后重启⼀次win10计算机即可正常运⾏程序。
应用程序初始化失败
7、应用程序由于自身BUG引用了不正常的内存指针在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。
手工修复系统服务
与系统内存读写操作有关的Windows Management Instrumentation服务要是发生错误的话,也会导致系统弹出内存读写错误的提示,所以当我们遇到这种错误现象时,可以尝试手工修复一下Windows Management Instrumentation服务,下面就是具体的修复步骤:
参考资料 :/question/29851924.html
这个最好用 先 运行 输入cmd 回车在命令提示符下输入
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
如果有再不明白的 请输入“read或written”搜索。
及时释放的程序或者游戏时,需要消耗相当的系统内存资源,要是此时内存空间不够时,那么系统内存读写错误的故障提示很有可能就会发生。为了有效避免这种错误提示,我们最好在运行容量较大的程序或者游戏之前,应该先将计算机系统重新启动一下,这样能够将系统内存空间充分释放出来;如果计算机内存空间本身就比较小的话,那么我们建议各位最好及时升级内存,以便拓展内存的有效使用空间,以防止由于系统内存不足而造成系统内存读写错误的发生。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最近几天被这个问题困惑了许久。
不禁感叹微软的东东真是越做越烂了,也终于明白了时隔12年大家仍然死守VC6的原因。
用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!!查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的;有让安装vcredist_x86.exe的; 有让把CRT库的dll直接拷贝到程序目录的; 有让清理注册表的;有让装.NetFramework新版本的;有让查manifest的;结果我尝试了半天,几乎都是浪费时间。
上面最后一条说的还算正确,只是作者把事情描述得太繁琐了。
现在把处理的方法说一下,省得大家再走弯路:1. VC2003、VC2005、VC2008及其后续版本,对底层最基本的CRT、MFC、ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在C:\\windows\WinSxS 文件夹中,并用特定的文件夹\文件名称进行标识;2. 与VC6不同, VC2003、VC2005、VC2008及其后续版本,引入了manifest 清单的概念,即应用程序编译后会同时生成对应的.manifest文件,并将该.manifest 文件作为资源编译到dll或者exe中去。
.manifest文件实际上是一个XML格式的文本文件,里面记录了dll或exe中要引用的CRT、MFC、ATL库的版本和名称。
VC6编译的应用程序对CRT、MFC、ATL的dll都是直接调用,而VC2003、VC2005、VC2008编译的程序都是先查询编译到资源中的manifest中的记录,然后按照记录提供的版本和名称去搜寻对应的CRT、MFC、ATL库以及随库发布的.manifest文件,搜寻的路径包括当前目录、C:\\windows\WinSxS 等等,如果没有找到对应的库文件,则提示“应用程序正常初始化失败”;3.因此解决这个问题的办法就是:(a)用文本编辑器打开exe或dll对应的.manifest文件,查看它引用的CRT、MFC、ATL库的版本;或者,用UltraEdit 直接打开exe或者dll,从资源区中找到编译进去的.manifest信息,找到它引用的CRT、MFC、ATL库的版本;或者,运行程序,当程序弹出“应用程序正常初始化失败”对话框时,在桌面上右键点击“我的电脑”-“管理”-“事件查看器”-“系统”,双击查看其中的记录,可以看到出错的原因是因为缺少了某某版本的CRT、MFC、ATL库,记录下这个版本信息;(b)记录到的库的版本信息一般类似于“Microsoft.VC90.DebugCRT”,之后到C:\\windows\WinSxS 或者VC200X的安装文件夹中搜索包含这个字符串的文件夹和文件,将搜索到的dll和.manifest文件都拷贝到应用程序所在的文件夹中,其中,.manifest文件必须重命名为“Microsoft.VC90.DebugCRT.manifest”(这里以Microsoft.VC90.DebugCRT为例),这样应用程序就可以正常运行了;(c)注意:库的.manifest文件和dll要一同拷贝到应用程序根目录去,因为应用程序会将编译到内部的manifest信息与外部的.manifest文件进行对比,之后才会对库的dll进行调用。
如果只拷贝库的dll文件是没有用的;4.如果本机编译和运行程序都ok,但是将编译好的程序拿到其它机器上确无法运行,则多半也是这个原因。
另外,如果提示"应用程序配置不正确",大多也是因为上面所说的CRT、MFC、ATL库版本与应用程序不匹配导致的,可以如法炮制进行解决;在网上找出了这些方法:方法一:在类似C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:msvcm80d.dllmsvcp80d.dllmsvcr80d.dllMicrosoft.VC80.DebugCRT.manifest把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。
其他release版、MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!方法二:修改编译选项,将/MD或/MDd 改为/MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。
方法三:工程-》属性-》配置属性-》常规-》MFC的使用,选择“在静态库中使用mfc”这样生成的exe文件应该就可以在其他机器上跑了。
方法四:你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装在大部分机上都可以运行了,唯独在我的测试机上还是报应用程序配置错误。
刚开始怀疑是还缺少dll,在能跑的机上把windows/system32目录下所有的msvc*.dll都复制到这台机的运行目录,还是不行!极度郁闷※×…!后来实在没辙了,就在VC环境中打开了EXE来查看它内嵌的manifest资源,无奈了看了一会,带着心中对manifest的咒骂,突然发现这个manifest带了两个版本CRT的依赖:再打开Microsoft.VC80.CRT.manifest一看,是这样:就是说,我们EXE的Manifest里多了一个版本依赖,那就把后面那个依赖删除试试。
于是就把工程设置的生成manifest的选项去掉,手工改了一下manifest放到程序目录下,发现果然可以运行了!还有个问题没有明白,就是VC为什么在自 傻膍anifest里带了两个依赖呢,上网再查了一下,发现在msdnonline上说'8.0.50608.0'这个版本是在XP下用的,'8.0.50727.762'这个版本是在Vista下用的(/en-us/library/ms235342(VS.80).aspx),可是我用的是'8.0.50727.762'在XP下运行的好好的!想不通是它错了还是别的原因。
后来在CRT的源码里面搜索'8.0.50727.762',找到了~'8.0.50608.0'也在那里。
#if defined _USE_RTM_VERSION#define _CRT_ASSEMBLY_VERSION “8.0.50608.0”#else#define _C RT_ASSEMBLY_VERSION “8.0.50727.762”#endif显然默认的版本是“8.0.50727.762”,除非定义了_USE_RTM_VERSION!那为什么我们的工程会生成两个版本的依赖呢,明明这个地方是二选一的。
一开始怀疑是工程设置引起的,我就把我们的工程拷出来,把里面的文件删掉,再复制一些向导生成的文件进来,编译一看,manifest 里只有一个'8.0.50727.762',说明工程设置没有问题!最后我怀疑是工程链接的那些库的问题,因为有些库是用VC6或者VC2003编译的,但是有些库没有代码,编不了,没法尝试了。
VC++ 解决"应用程序配置不正确,程序无法启动"2009-03-03 10:05在使用VC++2005环境下生成的程序,放置到未安装VC环境的机器下后,有时候会出现程序无法执行的错误,其提示是:应用程序配置不正确,程序无法启动,重新安装应用程序可能解决问题。
实际上,重装是解决不了问题的,解决的一种方法是查看*exe.intermediate.manifest文件,比如文件的内容是:<?xml version='1.0' encoding='UTF-8' standalone='yes'?><assembly xmlns='urn:schemas-microsoft-com:asm.v1'manifestVersion='1.0'><dependency><dependentAssembly><assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86'publicKeyToken='1fc8b3b9a1e18e3b' /></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentity type='win32' name='Microsoft.VC80.MFC' version='8.0.50727.762' processorArchitecture='x86'publicKeyToken='1fc8b3b9a1e18e3b' /></dependentAssembly></dependency><dependency><dependentAssembly><assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT'version='8.0.50727.762' processorArchitecture='x86'publicKeyToken='1fc8b3b9a1e18e3b' /></dependentAssembly></dependency></assembly>需要注意这个文件中的3个关键词:Microsoft.VC80.CRT,Microsoft.VC80.MFC和Microsoft.VC80.DebugCRT。
寻找到...."Program Files"Microsoft Visual Studio 8"VC"redist文件夹下面,找到这些名称的子文件夹,拷贝它们下面所有的文件到希望发布的EXE文件下面,一起打包。