我用的是vc2008 express版。 自己写了一个服务功能的lib,在一个客户程序中要调用我自己写的这个lib。无论lib还是客户端程序都是非mfc的,只用到了最基本的win32程序框架和opengl库。在本机可以运行,使用MTD方式编译后,在没有vc环境的机子上却无法运行。提示说“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”。 在网上查是说vc2008本身的配置问题,需要包含一些特殊的库文件。但比较奇怪的一点是,我另外有一个vc2008写的程序,也用到了opengl库,但是是一个比较简单的程序(没有用到自己的lib库)。这个程序用MTD方式编译,在同一个朋友的机子上可以运行。实在搞不明白这是怎么回事。会不会因为有自己写的lib库的缘故?请教如果要调用自己写的lib库的话,在没有vc环境的机子上怎么运行?听说要做一个安装程序,不知道这个复杂不,有没有指导手册?谢谢各位!

解决方案 »

  1.   

    静态opengl和相关运行时链接库试一试,这样在运行时可以脱离对dll的依赖
      

  2.   

    如果你需要使用MTD方式,那么就除了带上你的程序,以及lib等以外,还要带上编译器对应的crt,MFC类库dll
    msvcr90.dll msvcm90.dll, msvcp90.dll, mfc90.dll,
      

  3.   

    同意3楼的,你的静态lib是用vc2008编译的,编译器用到的MSVCRTD.DLL与那台机子上的不一样
      

  4.   

    设置:项目->属性->配置属性->C/C++->代码生成->运行时库->多线程(/MT)即可。
    缺省是多线程 dll(/MD),需要MSVC运行库,vc2008的MSVC运行库安装很麻烦,不像以前的版本仅包含几个dll。
      

  5.   

    在目标电脑上安装2008 的runtime distrabute ..
      

  6.   

    如果你要编译一个发布的版本在别人的电脑上运行,千万不要使用Debug版本,对于没有装VC20008的电脑,就会提示配置不正确之类的。
    编译成Release版本后,把使用到得库文件与你编译出来的.exe放到一个目录下,发布给别人就可以正常运行了。
    可能用到得库有MSVCRT90.DLL,MSVCP90.DLL等等,具体需要哪些DLL文件你可以在一个没有安装VC2008的电脑上运行一下,缺少哪个库文件会有提示的。
      

  7.   

    下载 VC 运行库:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=zh-cn
    到客户机安装。
      

  8.   

    感谢各位的帮助。最近忙着找工作,没有时间来料理这边。
    我的问题也查清楚了。因为我的lib编译时没有选用MT编译方式。这样虽然在client端选用MT方式,在别人机子上运行时依然会提示“配置不正确”;解决方法是对lib也选用MT方式即可。这样就没有任何问题了。虽然这不是各位提出的方法,但因为大家热情帮助,小弟备受感动。50分不多,我平均散给大家。谢谢了。