Chinaunix首页 | 论坛 | 博客
  • 博客访问: 624146
  • 博文数量: 116
  • 博客积分: 6078
  • 博客等级: 准将
  • 技术积分: 1214
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-23 10:09
文章分类

全部博文(116)

文章存档

2016年(1)

2015年(4)

2011年(2)

2010年(21)

2009年(88)

分类: WINDOWS

2009-06-09 09:37:56

    由于在项目中遇到以前别人用C++ builder开发的一个工具,而现在需要访问硬盘大小,于是在用::GetDiskFreeSpaceEx(str,   &AvailSize,  &TotalSize ,   0);进行获取时才发现,c++ builder的库不管怎么调,在超过100G以上的硬盘中,它获取的值超大,不正确,没办法则用VC写一个DLL,由C++ Builder调用,在XP下是可用的,但到了win 2003下,调用不了,用GetLastError();获取到的错误码为14001,在网上搜了代码为程序未能正常调用,而我的应用程序是可以的,那么只有DLL是有错的。
用depends查看这个DLL只是依赖于,kernel32,msvcr90二个库,那应是msvcr90引起的,于是把库的链接方式改为use mfc static library,先看size,由7K增到了40K,而用depends查看则只依赖于kernel32了.
把它拷到win 2003下,那么库可以调用成功了。
   总结,在这个程序中,遇到过应用程序不能正常启动,后来遇到库不能加载,但解决的办法都是改变链接库的方式而解除的。
阅读(1694) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~