程序中,用了一个WebBrowser2控件,并在它的基础上改了一些东西。在自己机器上调用运行Debug和Release都没有问题。然后将WebBrowser2控件copy到一个没有安装VC6.0的机器上,在这台机器上运行Debug版本的程序,就不能运行。而运行Release版本程序就可以正确执行。自己估摸着可能是因为Debug和Release版本所需要的dll文件不同造成这种差别。但不知道在没有安装VC6.0的机器上部署文件时,需要copy哪些dll文件才能让Debug程序正常运行。多谢!请高手指点!

解决方案 »

  1.   

    你可以用VC自带的工具查看一下你的deg生成的EXE需要那些DLL
    好象叫depans什么的忘了具体怎么拼了呵呵
    只要你安装VC全的话就带哪个工具的
      

  2.   

    应该是目标机器没有debug所需要的库,如mfc42d.dll
      

  3.   


    是depends。“在这台机器上运行Debug版本的程序,就不能运行。而运行Release版本程序就可以正确执行。 ”缺少debug相关的dll,用depends查看debug版本的dll依赖关系。
      

  4.   

    这是很正常的,操作系统会把release的库自动安装,而debug版本的则不会安装。拷贝一个debug版本的库到部署的机器上也不是啥好主意。你永远不要试图部署debug版本,这不仅仅是因为系统不带debug版本的库文件(release版本的操作系统会带),而且是因为debug信息在其中会影响系统性能。
      

  5.   

    我用Depends对生成的Debug版本的exe文件分析了,发现需要MFC42D.dll,MSVCRTD.dll,KERNEL32.dll,USER32.dll,MFCO42D.dll,OLE32.dll,OLEAUT32.dll这些dll文件。把MFC42D.dll,MFCO42D.dll和MSVCRTD.dll都放到c:\windows\system32中了。但现在还是运行不了Debug版本的exe。无奈了!!刚才把Project settings里的
    Use MFC in a Shared Dll 改成 Use MFC in a Static Library,然后再重新编译Debug版本,生成的exe文件就可以在别的机器人上运行,请问这又是为什么呢?搞晕了……已经
      

  6.   

    静态连接了库, 就不需要动态加载dll了, 一下