VC Redistributed for NSIS

微软发布了Microsoft Visual C++ 2008运行库(Microsoft Visual C++ 2008 Redistributable Package)的分发包,安装该运行库后您的计算机将可以运行Visual C++ 2008编写的程序,即使您并未安装Visual Studio 2008。比起.NET运行库来讲,C++的运行库要小得多。
  Visual C++ 2008运行库提供了C、标准C++、ATL、MFC、OpenMP以及MSDIA等类库的运行支持。在支持并行配件的操作系统上,支持并行部署模式的类库(CRT, SCL, ATL, MFC, OpenMP)将会被安装到WinSxS文件夹。
  VC++ 2005~2012 编译的程序很多都需要用 vcredist_x86.exe / vcredist_x64.exe 来进行分发,所以安装 vcredist_x86.exe / vcredist_x64.exe 不可避免。
NSIS的安装程序:
; ExecWait ‘vcredist_x86.exe’ # 一般的安装
ExecWait ‘”vcredist_x86.exe” /q’ # silent install 静默安装
; ExecWait ‘”vcredist_x86.exe” /q:a’ # silent install, display a progress dialog but requires no user interaction.
; ExecWait ‘”vcredist_x86.exe” /qb’ # unattended install 无人值守安装
; ExecWait ‘vcredist_x86.exe /q:a /c:”msiexec /i vcredist.msi /qb! /l*v $TEMP\vcredist_x86.log” ‘ # suppress all UI during installation.

======================================================

… …
Function InstallX86
Push $R0
ClearErrors
ReadRegDword $R0 HKLM “SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9A25302D-30C0-39D9-BD6F-21E6EC160475}” “Version”
IfErrors 0 VSRedistInstalled
ClearErrors
ReadRegDword $R0 HKLM “SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{86CE1746-9EFF-3C9C-8755-81EA8903AC34}” “Version”
IfErrors 0 VSRedistInstalled
; MessageBox MB_ICONQUESTION|MB_YESNO “LingosHook need MS VC++ 2008 Redistributable, do you want to install it ?” IDNO VSRedistInstalled
File “VC2008SP1Redistributable\vcredist_x86.exe”
ExecWait ‘”$INSTDIR\vcredist_x86.exe” /q’ # silent install
VSRedistInstalled:
Exch $R0
FunctionEnd

Function CheckVCRedist
Call InstallX86
Delete “$INSTDIR\vcredist_x86.exe”
FunctionEnd
… …

======================================================

vc2005库的CLSID

Visual C++ 2005 runtime files
Visual C++ 2005 (x86) – {A49F249F-0C91-497F-86DF-B2585E8E76B7}
Visual C++ 2005 (x64) – {6E8E85E8-CE4B-4FF5-91F7-04999C9FAE6A}
Visual C++ 2005 (ia64)- {03ED71EA-F531-4927-AABD-1C31BCE8E187}
Visual C++ 2005 SP1 runtime files
Visual C++ 2005 SP1 (x86) – {7299052B-02A4-4627-81F2-1818DA5D550D}
Visual C++ 2005 SP1 (x64) – {071C9B48-7C32-4621-A0AC-3F809523288F}
Visual C++ 2005 SP1 (ia64)- {0F8FB34E-675E-42ED-850B-29D98C2ECE08}
Visual C++ 2005 SP1 ATL Security Update runtime files
Visual C++ 2005 SP1 ATL (x86) – {837B34E3-7C30-493C-8F6A-2B0F04E2912C}
Visual C++ 2005 SP1 ATL (x64) – {6CE5BAE9-D3CA-4B99-891A-1DC6C118A5FC}
Visual C++ 2005 SP1 ATL (ia64) – {85025851-A784-46D8-950D-05CB3CA43A13}

vc2008库的CLSID

Microsoft Visual C++ 2008 (x86) {FF66E9F6-83E7-3A3E-AF14-8DE9A809A6A4}
Microsoft Visual C++ 2008 (x64) {350AA351-21FA-3270-8B7A-835434E766AD}
Microsoft Visual C++ 2008 (IA64){2B547B43-DB50-3139-9EBE-37D419E0F5FA}
Microsoft Visual C++ 2008 SP1 (x86) {9A25302D-30C0-39D9-BD6F-21E6EC160475}
Microsoft Visual C++ 2008 SP1 (x86) {86CE1746-9EFF-3C9C-8755-81EA8903AC34}
Microsoft Visual C++ 2008 SP1 (x64) {8220EEFE-38CD-377E-8595-13398D740ACE}
Microsoft Visual C++ 2008 SP1 (IA64){5827ECE1-AEB0-328E-B813-6FC68622C1F9}
Microsoft Visual C++ 2008 SP1 ATL(x86) {1F1C2DFC-2D24-3E06-BCB8-725134ADF989}
Microsoft Visual C++ 2008 SP1 ATL (x64) {4B6C7001-C7D6-3710-913E-5BC23FCE91E6}
Microsoft Visual C++ 2008 SP1 ATL (IA64){977AD349-C2A8-39DD-9273-285C08987C7B}
Microsoft Visual C++ 2008 SP1 MFC Security Update (x86) {9BE518E6-ECC6-35A9-88E4-87755C07200F}
Microsoft Visual C++ 2008 SP1 MFC Security Update (x64) {5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}
Microsoft Visual C++ 2008 SP1 MFC Security Update (IA64){515643D1-4E9E-342F-A75A-D1F16448DC04}

vc2010库的CLSID

Microsoft Visual C++ 2010 (x86) {196BB40D-1578-3D01-B289-BEFC77A11A1E}
Microsoft Visual C++ 2010 (x64) {DA5E371C-6333-3D8A-93A4-6FD5B20BCC6E}
Microsoft Visual C++ 2010 (IA64) {C1A35166-4301-38E9-BA67-02823AD72A1B}
Microsoft Visual C++ 2010 SP1 (x86) {F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}
Microsoft Visual C++ 2010 SP1 (x64) {1D8E6291-B0D5-35EC-8441-6616F567A0F7}
Microsoft Visual C++ 2010 SP1 (IA64) {88C73C1C-2DE5-3B01-AFB8-B46EF4AB41CD}

vc2012库的CLSID

Microsoft Visual C++ 2012 (x86) {AC53FC8B-EE18-3F9C-9B59-60937D0B182C}
Microsoft Visual C++ 2012 (x64) {A2CB1ACB-94A2-32BA-A15E-7D80319F7589}


源自:http://blog.donews.com/keo321/?p=1583539

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果失效节点不止一个,并且要求最终输出的邻接矩阵是删除所有失效节点后的邻接矩阵,你可以将失效节点的序号存储在一个向量或数组中,在循环中逐个处理每个失效节点。以下是相应的修改: ```matlab failed_nodes = [1, 3, 5]; % 输入的失效节点序号 for k = 1:length(failed_nodes) failed_node = failed_nodes(k); new_adj_matrix(failed_node, :) = 0; new_adj_matrix(:, failed_node) = 0; new_load(failed_node) = 0; % 进行负载重分配 while true % 判断是否有节点失效 failed = (new_load > capacity); if ~any(failed) break; % 网络已经稳定,没有节点失效 end % 计算需要重新分配的总负载 total_redistributed_load = sum(new_load(failed)); % 对其他节点进行负载重分配 for i = 1:length(new_load) if ~failed(i) && new_adj_matrix(i, failed_node) > 0 redistribution_prob = redistribution_prob / sum(redistribution_prob); % 确保概率之和为1 redistributed_load = redistribution_prob(i) * total_redistributed_load; new_load(i) = new_load(i) + redistributed_load; end end % 移除失效节点的负载 new_load(failed) = 0; end end % 删除所有失效节点后的邻接矩阵 final_adj_matrix = new_adj_matrix(~failed_nodes, ~failed_nodes); ``` 在修改的代码中,使用`for`循环遍历每个失效节点,并对其进行处理。循环内的逻辑与之前的代码保持一致,对失效节点进行负载重分配,并在每次循环结束后更新邻接矩阵和负载矩阵。最后,使用索引删除所有失效节点后的邻接矩阵,并将其存储在`final_adj_matrix`变量中。请确保将实际的失效节点序号存储在`failed_nodes`向量中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值