我试过放在不同的地方,直接影响到程序能否正常运行,另外,对于DLL,OCX这些文件,不能向上兼容吗?就是说,比如我在WIN98下开发过一段程序,后来挪到了WIN2000下继续做,引用的文件版本是不一样的,那么我在给程序打包时,新旧版本的DLL文件都要包括进去吗?

解决方案 »

  1.   

    如果是ActiveX DLL就必须引用且注册(如果是系统自带的那就不必了)
    一般的Win32 DLL可以直接使用,但是如果你使用系统DLL,要注册平台变化,部分函数在部分平台里面是不能用,比如2000/xp平台的透明函数,98下就不能用,其他的都兼容
      

  2.   

    系统DLL切记不要打包!!!将导致系统崩溃!!!
    至于msvbvm60.dll,comctl32.ocx等vb带过去的东西可以
      

  3.   

    如果安装在98下,DLL,OCX这些文件须安装到x:\windows\system目录下。
    如果是安装在XP下,DLL,OCX这些文件须安装到x:\WINDOWS\SYSTEM32目录下。
      

  4.   

    //系统DLL切记不要打包!!!将导致系统崩溃!!!
    头一次听说,为什么呢?什么原因造成的?打包后那些文件是丢失了还是被破坏了
      

  5.   

    //头一次听说,为什么呢?什么原因造成的?打包后那些文件是丢失了还是被破坏了
    我所谓的系统DLL是说kernal32.dll,gdi32.dll,user32.dll,comctl32.dll,advapi32.dll,shell32.dll等等,这些dll我想使用api谁都该知道吧!你敢把这些都打包吗?
      

  6.   

    1.VB開發的程序,最好要帶上vb的運行庫,因為您不能保證別人的機器上一定安裝了.並且是要附帶最新版本的,免得萬一覆蓋了用戶機器上的新版本DLL,就不知道會出現甚麼事情了,雖然現在的安裝程序在部署dll,ocx的時候都會自動檢查文件的版本,如果比安裝程序中附帶的DLL版本高,就不覆蓋,否則覆蓋,但是,萬一.....  壇子裡面有很多關於VB運行庫包含那些文件的帖子,你搜索看看.2.VB中使用到的控件和引用到的DLL等文件要一並打包,不要猜測用戶的機器上有,萬一沒有呢?另外,需要注意的是如果是VB的標準控件,要安裝在系統目錄下,如SYSTEM32,以免在用戶的機器中重複註冊,引發不必要的版本衝突,如果只是自己的控件,dll,如果只有自己的程序使用,可以放在自己的程序目錄下,但是最好還是放在系統目錄中,目的還是說萬一那一天用戶又安裝了自己寫的另一程序,而這個程序使用了一個更高版本的同樣控件.不確定阿.  所以最好都是放在系統目錄下,不容易出問題的.3.使用到的系統api等文件,不要打包,因為這是用戶安裝了WINDOWS之後一定會有的文件,不用你操心,而且你要是自做聰明,覆蓋了系統文件,或者你的程序在卸在的時候,一並把系統文件給卸在掉了,那用戶一定會跟你急的.
      

  7.   

    你用什么打包工具,你用installshield或VB自带的打包工具,都会把dll,ocx文件自动放在系统目录或应用程序目录中,如果不是windows自有的dll或ocx,则建议你都把它们放在应用程序目录中,其余的按默认方式存放就可了。