none
[VB6] 關於引用 DLL 的錯誤

    問題

  • 在專案中,引用了一個 DLL(例如 libname.dll),而且一直運作正常

    但隨後,加入一句 Declare 陳述,例如:

    Declare Sub SubName Lib "libname" ()

    再執行,便出現了錯誤:找不到檔案 "libname.dll"(錯誤編號 53),但該檔案其實是存放於專案/執行檔路徑的

    之後再 Remark 了上述那句 Declare 陳述,然而相同的錯誤依然會出現,大家有否遇過同樣的問題?有甚麼解決方法呢?

    另外,有甚麼方法或工具,可以檢視 DLL(一般的 DLL,而非 ActiveX DLL)中提供了甚麼外部程序?

    謝謝!

     

    2006年9月20日 下午 03:53

解答

  • 如果是函數型的 dll ,就不該用參照吧?

    VB6 線上手冊有寫到 dll 放的路徑,其中一個叫做工作路徑,你把你 VB IDE 捷徑內容開來看,預設的工作路徑並不在你的專案目錄下,對 VB IDE 環境來說,你的專案目錄是資料檔的位置,並不是工作路徑,所以你可以透過幾種方式變更工作路徑:

    1. 直接以檔案總管在專案路徑點選你的 vbp ,檔案總管會把該目錄設為工作路徑傳給 VB IDE 環境。
    2. 變更你的 VB IDE 捷徑內的工作路徑。
    3. 程式碼中重新指定工作路徑到執行檔所在目錄。

    看函數型的 DLL 可用 Dependency Walker 瀏覽,VB6 企業版在光碟內有,並未安裝至電腦內。若是你是安裝 VS98 來取得 VB6 ,在選擇性安裝可以安裝此工具。所有函數型 DLL 僅能取得 Import / Export 的函數名與進入點編號,並不能瀏覽引數,也不提供引數型別與說明,若無相關說明文件將無法正確使用 DLL 的函數,通常使用此工具僅是為了檢查自建的 DLL 別名是否正確。

     

    2006年9月21日 上午 01:02
    版主

所有回覆

  • 如果是函數型的 dll ,就不該用參照吧?

    VB6 線上手冊有寫到 dll 放的路徑,其中一個叫做工作路徑,你把你 VB IDE 捷徑內容開來看,預設的工作路徑並不在你的專案目錄下,對 VB IDE 環境來說,你的專案目錄是資料檔的位置,並不是工作路徑,所以你可以透過幾種方式變更工作路徑:

    1. 直接以檔案總管在專案路徑點選你的 vbp ,檔案總管會把該目錄設為工作路徑傳給 VB IDE 環境。
    2. 變更你的 VB IDE 捷徑內的工作路徑。
    3. 程式碼中重新指定工作路徑到執行檔所在目錄。

    看函數型的 DLL 可用 Dependency Walker 瀏覽,VB6 企業版在光碟內有,並未安裝至電腦內。若是你是安裝 VS98 來取得 VB6 ,在選擇性安裝可以安裝此工具。所有函數型 DLL 僅能取得 Import / Export 的函數名與進入點編號,並不能瀏覽引數,也不提供引數型別與說明,若無相關說明文件將無法正確使用 DLL 的函數,通常使用此工具僅是為了檢查自建的 DLL 別名是否正確。

     

    2006年9月21日 上午 01:02
    版主
  • OK,謝謝!
    2006年9月21日 下午 07:50