由于在项目中遇到以前别人用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下,那么库可以调用成功了。
总结,在这个程序中,遇到过应用程序不能正常启动,后来遇到库不能加载,但解决的办法都是改变链接库的方式而解除的。
阅读(1733) | 评论(0) | 转发(0) |