在我自己的电脑上运行,一切正常。我想可能是在装VC6的时候,相应的DLL文件都已装好了吧。然而在别人电脑上运行,总提示缺少DLL文件。我曾经试过从网上找到对应的DLL文件放到对应文件夹(System32 ?),一个DLL文件问题解决,却有提示缺少另一个DLL文件。我想问,如何解决这个问题。 是我写的MFC程序在其它电脑上也能正常运行。非常感谢!!

解决方案 »

  1.   

    使用Depends查看都需要什么库,一次全copy过去。
      

  2.   


    谢谢abomber2,
    希望说的再具体些如何使用静态MFC库?
    实在Setting--〉Link里选么?选哪些项?
     
      

  3.   


    "使用Depends查看都需要什么库,一次全copy过去。"您的意思是说,若想在其它电脑上正常运行我的程序就得把Project-〉Dependencies下列出的库都Copy到对方电脑,并和我的程序放在同一目录下,是这样么?
      

  4.   


    // 开始->程序->Microsoft Visual Studio 6.0->Microsoft Visual Studio 6.0 Tools->Depends 打开它
    // 然后
    // File->Open打开你的应用程序最好放在同一目录。使用静态库可以这么做:
    // Project->Setting->General->Use mfc in a static library
      

  5.   

    >>如何使用静态MFC库?
    VC6:Setting->General->Microsoft Foundation Classes中选择Use MFC in a Static Library
    缺点:编译的exe较大。
      

  6.   

    建议用VC的工具Depends看看需要的dll,然后copy到目标机器上面的system32下。这些dll一般都在你的system32下。
      

  7.   


    我已经尝试用了“静态数据库的办法”,在其它机器上试了一次,可行! 
    谢谢abomber2 sjdev和flight_lcf
    我也用Depends工具查了一下,可是要把那么多DLL都找出来叶挺麻烦的啊,而且好像工具栏上的Copy没啥用啊。应该有便捷的方法把所有相关DLL文件都拷出来吧,如何?
      

  8.   

    有的安装工具,可以扫描程序所依赖的库,然后全部拷贝出来,例如InstallShield.
      

  9.   

    >>不要用静态的
    麻烦说明原因。以及你的解决方法。
    谢谢
      

  10.   

    大是大的,,你用其它方法又没个的,,打包dll嘛,,也还是大容量的,,
    打包dll与release版本(即静态Release)的区别只是:前者是复制dll到system32下,,虽然没增加你的应用程序的
         容量,,,但也还是要依赖于你拷贝的dll,,,也可以将前者称为手动
                                    后者呢,,是打包到你的应用程序里,,增加了应用程序的容量,,但你也不用手动地
         去拷贝dll了,,比前者更方便点,,
      

  11.   

    > > 如何使用静态MFC库? 
    VC6:Setting-> General-> Microsoft   Foundation   Classes中选择Use   MFC   in   a   Static   Library 
    缺点:编译的exe较大。 
    -----------------------------
    带着那一堆DLL,总容量更大。
      

  12.   

    用release版本编译。vc2005是在配置管理器里面设置。
      

  13.   

    用VC的depend工具看一下你的exe文件使用了哪些库,一般情况下,使用的VC库不会很多,很多都是系统自带的,你把MFC开头的几个DLL拷贝到exe文件目录下就可以了。
      

  14.   

    楼上说的都差不多了~
    一般这三个会经常用到:
    MFC42D.dll
    MFCO42D.dll
    MSVCIRTD.dll