CRT库版本与VS版本不一致问题

Qiong-k 2013-04-09 10:02:06
求助:
我用VS2010编译链接生成的程序(dll文件),在用sxstrace工具检测的时候发现CRT库的版本是8.0的。
如下:
(Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.6195"
信息: 正在解析参考 )
VC库的路径也设置的是正确的(2010的),我不放心,还把2010的库重命名了,链接时会提示找不到库文件
注:我使用了一个外部的lib库,这个lib库是VS2005编译的。
我把这个库删除之后,再用sxstrace检测时,没有显示CRT库版本
问题如下:
1、为什么用VS2010链接后生成程序的CRT库会是 8.0的
2、我的程序难道没有用到CRT库的内容么?是因为程序是dll文件而非exe文件?但是内存分配:malloc,字符串操作:strcpy等基本函数还是用到了的呀。

PS:平台版真不靠谱啊。。。。这么久连个回复都木有
...全文
398 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Qiong-k 2013-05-22
  • 打赏
  • 举报
回复
不靠谱啊,还是没有解决问题,自己再研究一下。
翅膀又硬了 2013-04-09
  • 打赏
  • 举报
回复
你lib是2005的,CRT库是 8.0。这不是正好对上吗。。。 lib库里面的用到了2005的CRT。 你再装一个VS2005,应该就好了吧。
Qiong-k 2013-04-09
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
用depends.exe查看exe依赖的dll及其版本号。
depends 依赖的DLL为MSVCR100,是10.0的库 但清单列表中显示的是CRT为8.0的。 在加载DLL时出现无法加载的问题。 sxstrace追踪结果是未找到 CRT8.0的库。
赵4老师 2013-04-09
  • 打赏
  • 举报
回复
用depends.exe查看exe依赖的dll及其版本号。
翅膀又硬了 2013-04-09
  • 打赏
  • 举报
回复
本来他的lib里面的东西应该使用2005里面的函数才能正常运行。但是你现在运行时候调用2010里面的库函数,所以有问题。
Qiong-k 2013-04-09
  • 打赏
  • 举报
回复
引用 1 楼 yunchao630 的回复:
你lib是2005的,CRT库是 8.0。这不是正好对上吗。。。 lib库里面的用到了2005的CRT。 你再装一个VS2005,应该就好了吧。
但根据我分析的结果,链接的时候是链接的2010的库。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧