最近经常被同学笑话说天天都在说我的程序可以跨平台,结果连跨机器都不行~~~这还得“归功”与VS2005的运行库和manifest作怪。
在VS2005里面编译的程序默认的配置是“多线程DLL”,其实也就是动态链接运行库的DLL,文件小,但需要客户机安装运行库。还有一个选项是“多线程”,这个选项就是静态链接运行库,文件大,优点是不需客户机安装运行库。
现在编译我的程序为release以便在客户机上使用,按照默认的的“多线程DLL”链接编译。直接把EXE文件和相关的DLL文件复制到客户机,无法使用,提示“应用程序配置不正确…………”。这令人很尴尬,在网上搜索找到三种解决方案:
1、所有的库和应用程序都使用静态链接。但这样导致的问题就是N多的链接错误,对于我来说OpenSceneGraph的库的osgCore就有1000多个链接错误~~。即便是链接成功,文件也会异常的大。除非是小工程,而且不需要外来库,可以选择这个方法,直接拷贝EXE就可以用。
2、制作安装包。此法看了后感觉很复杂~~略去。
3、在客户机上安装vc运行库分法包,也就是位于C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86里面的文件。
方法三对于普通的大工程比较实用,包括AUTOCAD2006都是这样的方式。
最开始我用的是微软官方下载的vcredist_x86,但是很郁闷,还是提示“应用程序配置不正确……”,后来用安装的SDK目录里面的(就是上面那个路径)vcredist_x86.exe就对了。想必可能是我的VS2005是SP1,这个发行包已经更新。所以建议直接从SDK目录里面提取。
最后就在客户机上安装了vcredist_x86,拷贝必要的OpenSceneGraph的DLL,执行我的程序就对了!
其实中间还很费周折,最开始为了编译成一个静态链接的库,我反复测试编译OpenSceneGraph的Release版本,结果每次都是各种各样的链接错误,要不就是找不到函数,要不就是函数重定义。还好中间老蒋来找我出去刚了一圈,回来头脑清醒了一些,运气也来了,问题也就找到了。

下一个任务就是测试一下能不能跨平台了,呵呵,Linux,等着吧!

程序终于实现跨机器运行——记VC++2005程序开发的一个常见问题相关推荐

  1. VS2008环境下开发的某些程序在其他机器运行提示“由于应用程序配置不正确,应用程序未能启动”的问题(IIS)...

    比较全的有关vs2008部署问题集(1): http://blog.csdn.net/buhuizheyangba/article/details/7220598 比较全的有关vs2008部署问题集( ...

  2. VC++2005 CString和char*的相互转换

    原文:http://laue.cnblogs.com/archive/2005/12/26/305208.aspx 首先声明我不是一个高手,而是一个初学者,文章同样也是一个初学者对于CString和c ...

  3. VC++2005项目的目录结构设置

    2019独角兽企业重金招聘Python工程师标准>>> VC++2005项目的目录结构设置 作者:flyfish 2010-03-23 星期二 为了方便程序的打包和代码转移,需要手动 ...

  4. vc 2005 express使用

    1. vc 2005 express下载 http://msdn.microsoft.com/vstudio/express/visualc/download/ 在线安装包,所依赖的组件可以在线安装: ...

  5. Solidworks 2016安装失败因为VC++2005安装失败的解决办法

    因为Microsoft Visual C++ 2005 Redistributa安装失败,导致Solidworks 2016安装失败的解决办法 同学买了一台3D打印机,便想请他帮忙打印一点东西,来做我 ...

  6. 微信小程序实战 《跨时空》旅行日记小程序

    题外话 我喜欢旅行,在正文开始前,先向有共同兴趣的朋友推荐一个自己每次出行前必装的 APP -- 面包旅行.我主要用它来写旅行日志,每天行程结束,我都会将当天拍的照片上传并做简单的文字记录,记录是回顾 ...

  7. VC++2005相关问题解决方案

    微软的VC++ 2005的强大功能让人体验了不一样的感觉,对于习惯了VC++6.0的程序员来说可能会感觉VC++2005总有一些莫名其妙的问题. 诚然,VC++2005是存在着那么一些问题.这让使用V ...

  8. 测试/开发程序员小张相亲记......

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  9. VC MFC程序,在About对话框中获取并显示程序的版本号

    =================================================本文为HeYuanHui原作 转载必须确保本文完整并完整保留原作者信息及本文原始链接! NN:     ...

最新文章

  1. 微软的公开的DLL库
  2. 无法渲染窗口发黄_基础c4d教程:OC渲染器的立体光照
  3. 二叉排序树查找的c语言程序,C语言二叉排序(搜索)树实例
  4. cookie ? 利用cookie实现 显示上次访问时间?
  5. QML 读取本地文件内容
  6. python判断_轻松python文本专题-判断对象里面是否是类字符串(推荐使用isinstance(obj,str))...
  7. 搜狗赴美上市:首日涨3.8%,王小川哽咽感谢母亲
  8. 用photoshop去掉图片文字
  9. 你越来越孤独的3个原因
  10. 新浪邮箱界面登录按钮效果制作
  11. org.apache.kafka.clients.consumer.CommitFailedException
  12. lpl夏季赛2021赛程表出炉,用当贝投影F3百吋大屏看比赛!
  13. 什么是WHQL认证?
  14. 十分钟用Python画一片雪花
  15. 第十二章:email-mailbox:管理email归档-imaplib:IMAP4客户库-连接服务器(认证失败)
  16. 腾讯、阿里、百度高工都点头称赞的“Redis 实战超全笔记”,不看你就亏大发了
  17. 快排优化代码__2018.07.26
  18. iCloud Drive,简单实用的苹果原生云存储
  19. jQuery学习笔记(二)使用选择器一
  20. 编译器、汇编器、链接器

热门文章

  1. javascript面向对象系列第一篇——构造函数和原型对象
  2. Linux学习之获取帮助
  3. UIAlertview改变按钮位置 大小
  4. 解决注册并发问题并提高QPS
  5. .net core 2.1 发布到IIS遇到的问题
  6. css中底部sticky footer
  7. Lync Server 2010标准版系列PART1:基础构建
  8. Teradata收购Think Big Analytics 提升大数据咨询能力
  9. Disruptor官方文档实现
  10. Mysqli的批量CRUD数据