首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

Microsoft Visual C++ Runtimelibrary到底是由哪位高手提供的?编译器厂商?微软

2012-03-23 
Microsoft Visual C++ Runtimelibrary到底是由谁提供的?编译器厂商?微软?看了http://community.csdn.net/E

Microsoft Visual C++ Runtimelibrary到底是由谁提供的?编译器厂商?微软?
看了http://community.csdn.net/Expert/TopicView3.asp?id=5483035的解答有点模糊,如果说C++   Runtime   Library由编译器厂商提供,和所运行的操作糸统厂商无关,

那么为什么我在运行   BitDefender   2008时候弹出对话框:

Microsoft   Visual   C++   Runtimelibrary

Runtime   Error

D:\Program   Files\BitDefender\BitDefender   2008\vsserv.exe

this   application   has   requested   the   runtime   to   terminate   it   in   an   unusual   way.please   contact   the   applicition 's   support   team   for   more   information


具体状况为   安裝BitDefender   Antivirus   2008
有時上網開啟某修網頁就出現
Runtime   error!   C:\Program   Files\BitDefender\BitDefender   2008\vsserv.exe
然後BitDefender   Virus   Shield這隻服務就會停止了
重新啟動還是會出現.......


知道怎么解决的   麻烦解释下,我已经试过系统和软件全部重装过,但是还是这样,是不是和MSVCR71.dll有关系


[解决办法]
VC的C++ Runtime Library是微软提供的
可能是多个运行库版本什么,也有可能是代码的错误
[解决办法]
首先明白动态库的概念
动态库就是程序运行时候才加载到memory,动态库提供了一种机制,就是如果有多个进程在使用同一个动态库的时候,动态库中的代码,在内存中只有一份拷贝,而全局数据,给每个进程一份拷贝。
所有动态库都有这个特性,所以楼主的这个问题就很明确了:
Runtimelibrary 跟谁提供的没有关系,只要它是运行时候加载到memory的都叫Runtimelibrary,它可以是第三方软件厂商提供,也可以是你自己写的(如果你自己写了一个动态库,而你自己又写了两个不同的程序,来用这个动态库,两个程序都在运行的时候,在第一个开始运行时发现,要用的这个库还没有加载到内存,立即从磁盘加载到内存,至于加载的时候怎么搜索,请查阅相关资料。如果这时候第二个程序运行,它会发现这个动态库已经在内存中了,所以不会再加载了)。
这就是Runtimelibrary。

关于Runtimelibrary与应用程序怎么连接与加载的详细情况请参考linker and loader,或
http://www.chinaunix.net/jh/23/817771.html
[解决办法]
更正一句说法:
运行是库是谁提供的,是不准确的。
[解决办法]
msvcr71.dll C:\WINDOWS\system32
msvcr71.dll C:\Program Files\KWMUSIC
msvcr71.dll D:\Program Files\SNS个人社会网络电影院2
msvcr71.dll D:\Program Files\中国移动手机桌面助理
msvcr71.dll D:\Program Files\SNS个人社会网络电影院2\run\bin

系统里有msvcr71.dll若干,你是说这些的版本不一致吗?


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

一致,
KWMUSIC、SNS个人社会网络电影院2、中国移动手机桌面助理
这些程序严重依赖dll

热点排行