Delphi做的程序,编译完成后,不是可以直接把那个exe文件搞到别的机器上就可以直接运行吗?
而不管别的机器是否装了Delphi,但为什么我现在编了一个小程序,搞到别的机器上运行时,都说差一个DLL文件?我用的WIN98+D6,在另外两台没装DELPHI的机器(一台WIN 98,一台WIN XP)上运行时,都提示差某个DLL文件,我在自己的电脑里面搜索出了那个DLL文件,把它拷到那两台机子上后就都可以正常运行了。
编的程序跟数据库没一点关系的。在98和XP上都说差这个文件:qtintf.dll
软件有下载功能,用了idHttp控件,出现这种情况是什么原因呢?怎样查看程序运行时需要用到的DLL文件?如果出现这种情况(程序不只是一个exe文件,含有DLL文件时),是不是就需要制作安装程序了?
那一般是用什么工具来制作安装程序的?好用吗?

解决方案 »

  1.   

    估计是idHttp需要DLL。
    看你做的程序是什么用途了,如果要发表的最好是专业点做个安装程序。
    不过我没用过这种工具,呵呵,帮不了你了!
      

  2.   

    这个就是因为你用到Delphi的文件。
    比如你把use列表里的Dialog改成QDialog(这个是Delphi自己的),编译后你的程序同样不能再没有delphi的机器上运行。
      

  3.   

    只能考一个..不然你就不要用到他提供的东西..比如string有用到的话..你就要加一个borlndmm.DLL这个文件..
    而且在USES的第一个要加sharemem这个PAS
      

  4.   

    不懂你们说的意思。
    那我现在的解决办法就是制作安装程序吗?
    安装程序能不能在安装时把那个DLL文件拷贝到指定目录去?如c:\windows\system?
    你们怎么都不提安装程序的问题呢?
    是不是我说错了?
      

  5.   

    你就打个包做个安装程序吧
    安装程序会自动将用的到的dll打进去
    并且在安装的时候防到系统目录下
    没问题的
      

  6.   

    to : hansion3406(阿木) 
    你说的是在做dll的时候用到,与楼主意思不合。  qtintf.dll是在程序中用到clx控件时才需要。如果没有用到,发布时是不需要任何dll的。
      delphi支持跨平台,所以提供了一套clx控件,可以在unix上运行,他用到一个封装qti包的qtintf.dll.
      检查一下你的程序是否是clx application,或者看一下你的uses中有没有用到以Q开头的单元,我估计应该是后者的原因,因为在查帮助时上面显示的是clx的,下面显示的是vcl,很可能会粘帖clx的单元。
      

  7.   

    to lws0472(vincent) ,
    谢谢了,不过你最后一段话我不太明白是什么意思。我看了USES,好像没有用到Q开头的单元啊?另外要制作安装程序的话一般用什么工具呢?
      

  8.   

    qtinf.dll 不一定要用clx时才会有,解决的办法很简单
    使用installshield做一个安装程序,做的过程中在tool(或project不同版本不同)中选dyminic search就可以找出程序使用的全部dll
      

  9.   

    你在做程序过程中,用到一些函数或控件,如果编译时提示没有定义,这时你就会去找他对应的单元,然后加到uses里面,但你在查帮助时,系统一般显示两个出来,显示是一样的,对应的单元名只差一个Q,有可能会误操作。把带Q的粘帖到了你的程序。
      做安装程序的工具太多了,installbuilder,setupbuilder,wise,installshield,都可以不过比较起来,installbuilder做的最难看,setupbuilder比较简单实用,installshield最专业,功能也比较强大。建议还是用delphi自带的installshield
      

  10.   

    找一个qtinf.dll,放在和.exe文件同个文件夹就行啦吧
      

  11.   

    把Delphi里面的Project Options里面的Runtime Package的Build with runtime package的钩去掉,再编译你的程序试试