untimePack2019運(yùn)行庫合集是一款由俄羅斯綠軟達(dá)人JamesZero打造的VC++運(yùn)行庫安裝工具,目前版本已更到19.6.5,它可以幫助用戶解決運(yùn)行程序過程出彈出無法找到某某文件或Runtime運(yùn)行時(shí)錯(cuò)誤等錯(cuò)誤提示、修復(fù)運(yùn)行時(shí)間錯(cuò)誤提示的情況,為用戶修復(fù)這些錯(cuò)誤中的大部分問題。
RuntimePack2019
它適用于win xp到win10 x32/x64操作系統(tǒng),有需要的伙伴們可以移步簡易下載站獲取!
RuntimePack2019運(yùn)行庫合集下載
RuntimePack2019運(yùn)行庫合集:
atl70.dll 7.0.9975.0 x86
atl71.dll 7.10.6119.0 x86
comct232.ocx 6.0.98.39 x86
comct332.ocx 6.7.0.9839 x86
comctl32.ocx 6.0.98.39 x86
comdlg32.ocx 6.1.98.41 x86
dblist32.ocx 6.1.98.39 x86
mci32.ocx 6.1.98.39 x86
mfc70.dll 7.0.9975.0 x86
mfc70chs.dll 7.0.9975.0 x86
mfc70cht.dll 7.0.9975.0 x86
mfc70deu.dll 7.0.9975.0 x86
mfc70enu.dll 7.0.9975.0 x86
mfc70esp.dll 7.0.9975.0 x86
mfc70fra.dll 7.0.9975.0 x86
mfc70ita.dll 7.0.9975.0 x86
mfc70jpn.dll 7.0.9975.0 x86
mfc70kor.dll 7.0.9975.0 x86
mfc70u.dll 7.0.9975.0 x86
MFC71.dll 7.10.6119.0 x86
MFC71CHS.DLL 7.10.6119.0 x86
MFC71CHT.DLL 7.10.6119.0 x86
MFC71DEU.DLL 7.10.6119.0 x86
MFC71ENU.DLL 7.10.6119.0 x86
MFC71ESP.DLL 7.10.6119.0 x86
MFC71FRA.DLL 7.10.6119.0 x86
MFC71ITA.DLL 7.10.6119.0 x86
MFC71JPN.DLL 7.10.6119.0 x86
MFC71KOR.DLL 7.10.6119.0 x86
MFC71u.dll 7.10.6119.0 x86
mscomct2.ocx 6.1.98.39 x86
mscomctl.ocx 6.1.98.39 x86
mscomm32.ocx 6.1.98.39 x86
msdatgrd.ocx 6.1.98.39 x86
msdatlst.ocx 6.1.98.39 x86
mshflxgd.ocx 6.1.98.39 x86
msflxgrd.ocx 6.1.98.39 x86
msinet.ocx 6.1.98.39 x86
msmask32.ocx 6.1.98.39 x86
msstdfmt.dll 6.1.98.39 x86
MSSTKPRP.DLL 6.1.98.39 x86
msvbvm50.dll 5.2.82.44 x86
msvci70.dll 7.0.9466.0 x86
MSVCP70.DLL 7.0.9466.0 x86
msvcp71.dll 7.10.6052.0 x86
msvcr70.dll 7.0.9981.0 x86
msvcr71.dll 7.10.7031.4 x86
msvcrt10.dll x86
mswinsck.ocx 6.1.98.39 x86
picclp32.ocx 6.1.98.39 x86
richtx32.ocx 6.1.98.39 x86
sysinfo.ocx 6.1.98.39 x86
tabctl32.ocx 6.1.98.39 x86
Vb40032.dll 4.0.29.24 x86
Vb40016.dll 4.0.24.22 x86
vbrun100.dll x86
vbrun200.dll 2.0.9.8 x86
Vbrun300.dll 3.0.5.38 x86
Microsoft Visual C ++ 2005 Redistributable Package:
8.0.61001 x86 / x64
Microsoft Visual C ++ 2008可再發(fā)行組件包:
9.0.30729.6161 x86 / x64
Microsoft Visual C ++ 2010可再發(fā)行組件包:
10.0.40219.325 x86 / x64
Microsoft Visual C ++ 2012 Redistributable Package:
11.0.61030 x86 / x64
Microsoft Visual C ++ 2013可再發(fā)行組件包:
12.0.40664.0 x86 / x64
Microsoft Visual C ++ 2015-2019可再發(fā)行組件包:
14.21.27702.2 x86 / x64
創(chuàng)不易,請勿抄襲!
好吧,說來有點(diǎn)坑!
年初的時(shí)候買了一個(gè)新工控電腦,松下CF54,這么貴的筆記本居然沒有固態(tài),但是操作環(huán)境有些惡劣,考慮三防問題,最終買了這個(gè)電腦。(這個(gè)電腦并非沒有固態(tài)硬盤版,只是國內(nèi)沒有,只有美亞上有,而且價(jià)格比這個(gè)還便宜,但發(fā)票不好開,而且考慮清關(guān)問題就放棄了!)
好吧,其實(shí)這個(gè)電腦雖然沒有固態(tài)但運(yùn)行起來還可以,但我的工控電腦里的工業(yè)軟件太多了!在安裝了博途的V14SP1后,它就沒有那么流暢了!
最后決定增加一個(gè)固態(tài)硬盤,好了!有圖有真相,固態(tài)是在抹茶家買的!非常好!
然后固態(tài)拿到手后就開始了持續(xù)兩天的裝機(jī),真的幾乎裝到了崩潰。最后終于將博途裝了進(jìn)去,將經(jīng)驗(yàn)分享給大家,希望大家別走彎路!
我們先簡要說一下更換固態(tài)以及重做系統(tǒng)和安裝軟件的主要步驟,然后再說說其中的問題!
一安裝固態(tài)硬盤,在買固態(tài)硬盤前可以選擇多種多樣的接口,我選擇的是最普通的SATA-3接口,也就是和普通硬盤以及光驅(qū)一樣的接口,方便安裝.這種接口有兩根線,一根數(shù)據(jù)線,一根電源線.
二驅(qū)動(dòng)固態(tài)硬盤并分區(qū),4k對齊等等.
三如果想安裝博途軟件,請按照軟件指示選擇WINDOWS系統(tǒng).
四安裝.NET插件,然后再安裝博途軟件,安裝過程中需要什么插件去網(wǎng)上下載.
五WINDOWS系統(tǒng)激活,博途授權(quán)激活.
說來很簡單,只有五步,但如果有一步走錯(cuò)就會(huì)很麻煩,我這次裝機(jī)就裝了兩晚上才弄好.接下來根大家分享我遇到的問題.
第一步;在這一步里,大家記得安裝固態(tài)前將驅(qū)動(dòng)備份好并將固態(tài)硬盤固定好.如果將固態(tài)安裝在了光驅(qū)位,最好準(zhǔn)備一個(gè)可以啟動(dòng)系統(tǒng)的U盤,如果將機(jī)械硬盤拆除的話需要在拆除機(jī)械硬盤前先執(zhí)行第二步,即驅(qū)動(dòng)固態(tài),否則電腦無法識別固態(tài)硬盤.
第二步;將固態(tài)連到系統(tǒng)后,在系統(tǒng)里無法看到這個(gè)固態(tài)硬盤,我們需要工具將固態(tài)硬盤識別并定義以及4K對齊,這個(gè)軟件我使用的是DiskGenius,這個(gè)軟件非常簡單,運(yùn)行這個(gè)軟件后只要一步步執(zhí)行就可以。
大家別忘了4k對齊,才能發(fā)揮固態(tài)的性能!最后別忘了保存.
第三步;識別固態(tài)硬盤后,我們開始做系統(tǒng),大家應(yīng)該注意.
一;必須使用原版系統(tǒng),不要閹割版,閹割版里面缺少了很多東西,有不知道怎么尋找原版系統(tǒng)的可以向我詢問,這里就不公開了!
二;盡量不要使用雙系統(tǒng),我的固態(tài)硬盤系統(tǒng)安裝的時(shí)候,是在原來的系統(tǒng)基礎(chǔ)上安裝的,也就是裝完后出現(xiàn)了雙系統(tǒng),而在安裝完后我將舊系統(tǒng)的引導(dǎo)分區(qū)刪掉導(dǎo)致了新系統(tǒng)也無法啟動(dòng),因?yàn)殡p系統(tǒng)的引導(dǎo)分區(qū)的文件很可能混亂導(dǎo)致系統(tǒng)異常.
三嚴(yán)格按照軟件說明安裝系統(tǒng),我需要的博途軟件版本是V14 SP1,這個(gè)軟件要求的系統(tǒng)是WIN7 64位旗艦版SP1,我最開始安裝的是WIN7 64位旗艦版,這個(gè)版本根本無法運(yùn)行該博途軟件.其根本原因是安裝軟件時(shí)軟件;"丟失api-ms-win-crt-runtime-l1-1-0.dll”文件,而在非SP1系統(tǒng)下根本無法安裝這個(gè)文件.
第四步;安裝博途需要.NET插件,大家記得裝軟件前先下載這個(gè)插件并安裝,有需要的私信我.
最后給大家分享一下在安裝過程中可能出現(xiàn)的問題和解決方法.
我們在啟動(dòng)軟件時(shí),會(huì)遇到提示“計(jì)算機(jī)中丟失api-ms-win-crt-runtime-l1-1-0.dll”,重新安裝之后還是會(huì)有提醒。dll文件其實(shí)是電腦的動(dòng)態(tài)鏈接庫文件,不用管這個(gè)文件有啥用,你只要知道電腦中少這個(gè)文件,一般情況下只要下載這些dll文件就行,但是有些則行不通,像標(biāo)題這種情況,則需要安裝一個(gè)小程序——計(jì)算機(jī)中丟失api-ms-win-crt-runtime-l1-1-0.dll的修復(fù)方案才能解決這個(gè)系統(tǒng)錯(cuò)誤。
在這里需要下個(gè)軟件,軟件名叫VC_redist.x64/VC_redist.x86.大家記得這個(gè)軟件只能使用在SP1系統(tǒng)下,否則也會(huì)報(bào)錯(cuò).
PendingFileRenameOperations這里我們可以在運(yùn)行里輸入"regedit"打開注冊表,并將HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session?Manager里面的PendingFileRenameOperations刪除即可。
這個(gè)錯(cuò)誤是指插件不能運(yùn)行在現(xiàn)在的window系統(tǒng),需要更新到SP1才可以。
錯(cuò)誤代碼80240016是因?yàn)閣indows更新無法訪問用戶令牌引起的,只要重啟windows update服務(wù)就能解決了。下面一起來看看具體的處理方法。
a、在桌面左下角的開始菜單圖標(biāo)上,點(diǎn)擊鼠標(biāo)右鍵,選擇“命令提示符(管理員)”。如下圖所示
b、在“命令提示符”窗口中,輸入“net stop wuauserv”,然后按回車鍵,等待顯示“服務(wù)已成功停止”。
c、輸入“net start wuauserv”,再按回車鍵,提示“服務(wù)已經(jīng)啟動(dòng)成功”即可。如下圖所示:
使用以上兩個(gè)命令重啟windows update服務(wù)即可解決更新錯(cuò)誤80240016
總結(jié);授人以魚不如授人以漁,其實(shí)西門子軟件安裝起來還是很方便的,大家記住按照西門子軟件要求的完整系統(tǒng)安裝,然后出現(xiàn)錯(cuò)誤報(bào)警時(shí)不要慌,在網(wǎng)站去查一查這個(gè)故障的處理方法。
多軟件通過設(shè)置自己的異常捕獲函數(shù),捕獲未處理的異常,生成報(bào)告或者日志(例如生成mini-dump文件),達(dá)到Release版本下追蹤Bug的目的。但是,到了VS2005(即VC8),Microsoft對CRT(C運(yùn)行時(shí)庫)的一些與安全相關(guān)的代碼做了些改動(dòng),典型的,例如增加了對緩沖溢出的檢查。新CRT版本在出現(xiàn)錯(cuò)誤時(shí)強(qiáng)制把異常拋給默認(rèn)的調(diào)試器(如果沒有配置的話,默認(rèn)是Dr.Watson),而不再通知應(yīng)用程序設(shè)置的異常捕獲函數(shù),這種行為主要在以下三種情況出現(xiàn)。
(1)調(diào)用abort函數(shù),并且設(shè)置了_CALL_REPORTFAULT選項(xiàng)(這個(gè)選項(xiàng)在Release版本是默認(rèn)設(shè)置的)。
(2)啟用了運(yùn)行時(shí)安全檢查選項(xiàng),并且在軟件運(yùn)行時(shí)檢查出安全性錯(cuò)誤,例如出現(xiàn)緩存溢出。(安全檢查選項(xiàng)/GS 默認(rèn)也是打開的)
(3)遇到_invalid_parameter錯(cuò)誤,而應(yīng)用程序又沒有主動(dòng)調(diào)用_set_invalid_parameter_handler設(shè)置錯(cuò)誤捕獲函數(shù)。
所以結(jié)論是,使用VS2005(VC8)編譯的程序,許多錯(cuò)誤都不能在SetUnhandledExceptionFilter捕獲到。這是CRT相對于前面版本的一個(gè)比較大的改變,但是很遺憾,Microsoft卻沒有在相應(yīng)的文檔明確指出。
下面列出三種解決方法。
方法一:windows進(jìn)程崩潰時(shí)禁止彈出錯(cuò)誤對話框
在程序初始化的時(shí)候加入以下代碼。如果程序中通過SetUnhandledExceptionFilter捕獲異常,需要在SetUnhandledExceptionFilter后面增加以下代碼。
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
_set_abort_behavior(0,_WRITE_ABORT_MSG | _CALL_REPORTFAULT);
或者
// 關(guān)閉微軟堆轉(zhuǎn)儲(chǔ)的噪音
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_WARN, CreateFileA("NUL", GENERIC_WRITE, 0, nullptr, OPEN_EXISTING, 0, 0));
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
//在abort上禁用令人困惑的“helpful”文本消息
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
_CrtSetReportMode:設(shè)置開發(fā)編譯環(huán)境報(bào)告類型為警告,報(bào)告的輸出方式為文件輸出。
_CrtSetReportFile:創(chuàng)建一個(gè)空的文件,把警告消息輸出到這個(gè)文件中。即關(guān)閉警告消息。
_set_abort_behavior:處理在VS環(huán)境下的只會(huì)強(qiáng)制把異常拋給默認(rèn)的調(diào)試器的問題,用該函數(shù)把異常拋給異常捕獲函數(shù)。SetErrorMode:控制指定類型的嚴(yán)重錯(cuò)誤是由windows處理還是由應(yīng)用程序處理。
方法二:攔截CRT調(diào)用SetUnhandledExceptionFilter函數(shù),使之無效。
之所以應(yīng)用程序捕獲不到那些異常,原因是因?yàn)樾掳姹镜腃RT實(shí)現(xiàn)在異常處理中強(qiáng)制刪除所有應(yīng)用程序先前設(shè)置的捕獲函數(shù),如下所示:
/* Make sure any filter already in place is deleted. */
SetUnhandledExceptionFilter(NULL);
UnhandledExceptionFilter(&ExceptionPointers);
解決方法是攔截CRT調(diào)用SetUnhandledExceptionFilter函數(shù),使之無效。在X86平臺下,可以使用以下代碼。
#ifndef _M_IX86
#error "The following code only works for x86!"
#endif
void DisableSetUnhandledExceptionFilter()
{
void *addr=(void*)GetProcAddress(LoadLibrary(_T("kernel32.dll")), "SetUnhandledExceptionFilter");
if (addr)
{
unsigned char code[16];
int size=0;
code[size++]=0x33;
code[size++]=0xC0;
code[size++]=0xC2;
code[size++]=0x04;
code[size++]=0x00;
DWORD dwOldFlag, dwTempFlag;
VirtualProtect(addr, size, PAGE_READWRITE, &dwOldFlag);
WriteProcessMemory(GetCurrentProcess(), addr, code, size, NULL);
VirtualProtect(addr, size, dwOldFlag, &dwTempFlag);
}
}
WIN8.1上VirtualProtect報(bào)錯(cuò)C0000005,解決方法如下:
bool AdjustPrivileges()
{
HANDLE hToken;
TOKEN_PRIVILEGES tp;
TOKEN_PRIVILEGES oldtp;
DWORD dwSize=sizeof(TOKEN_PRIVILEGES);
LUID luid;
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
{
if (GetLastError()==ERROR_CALL_NOT_IMPLEMENTED) return true;
else return false;
}
if (!LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &luid))
{
CloseHandle(hToken);
return false;
}
ZeroMemory(&tp, sizeof(tp));
tp.PrivilegeCount=1;
tp.Privileges[0].Luid=luid;
tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
/* Adjust Token Privileges */
if (!AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), &oldtp, &dwSize))
{
CloseHandle(hToken);
return false;
}
// close handles
CloseHandle(hToken);
return true;
}
void DisableSetUnhandledExceptionFilter()
{
void *addr=(void*)GetProcAddress(LoadLibrary(_T("kernel32.dll")),
"SetUnhandledExceptionFilter");
if (addr)
{
unsigned char code[16];
int size=0;
code[size++]=0x33;
code[size++]=0xC0;
code[size++]=0xC2;
code[size++]=0x04;
code[size++]=0x00;
DWORD dwOldFlag, dwTempFlag;
//提升debug權(quán)限
VirtualProtect(addr, size, PAGE_EXECUTE_READWRITE, &dwOldFlag);
WriteProcessMemory(GetCurrentProcess(), addr, code, size, NULL);
VirtualProtect(addr, size, dwOldFlag, &dwTempFlag);
}
}
在設(shè)置自己的異常處理函數(shù)后,調(diào)用DisableSetUnhandledExceptionFilter禁止CRT設(shè)置即可。雖然也可以通過_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT), signal(SIGABRT, ...), 和_set_invalid_parameter_handler(...) 解決(1)(3),但是對于(2),設(shè)置api hook是唯一的方式。
方法三:禁止彈出“停止工作”對話框
在Win7及以后的系統(tǒng)中,如果一個(gè)程序發(fā)生了奔潰,系統(tǒng)會(huì)彈出一個(gè)“XX已停止工作”的對話框,如果不去這個(gè)窗口上點(diǎn)擊“關(guān)閉程序”,那么這個(gè)窗口會(huì)一直存在,最為關(guān)鍵的是,奔潰的進(jìn)程并沒有真正結(jié)束,還一直掛起在那里。這在自動(dòng)化無人值守程序開發(fā)中是不允許的,有時(shí)候有的程序只能運(yùn)行一個(gè)實(shí)例,如果奔潰的這個(gè)進(jìn)程一直沒有真正結(jié)束,新進(jìn)程就無法啟動(dòng)。根據(jù)網(wǎng)上資料,在Windows服務(wù)管理器中關(guān)閉這個(gè)錯(cuò)誤報(bào)告服務(wù),仍然會(huì)彈出停止運(yùn)行的對話框。最后在MSDN上找到了Windows的錯(cuò)誤報(bào)告服務(wù)配置說明:https://msdn.microsoft.com/en-us/library/windows/desktop/bb513638(v=vs.85).aspx
那如何禁止 werfault 窗口的彈出呢?
在 stackoverflow 上找到一個(gè)方法,可以通過修改注冊表,抑制這個(gè)錯(cuò)誤窗口的彈出。
具體方法如下所示:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting]
"Disabled"=dword:00000001
"DontShowUI"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
"Disabled"=dword:00000001
"DontShowUI"=dword:00000001
修改注冊表后應(yīng)該就可以了。
如果還有問題, 可能需要重新加載注冊表
1.進(jìn)程中關(guān)閉 explorer.exe
2.運(yùn)行 explorer.exe