none
如何在 VB.NET 2005 中使用 VC++ 開發的 DLL RRS feed

  • 問題

  • 請問一下, 如何在 VB.NET 中使用 VC++ 開發的 dll 呢??

    例如 DLL 名稱為 AdveHome.dll, 內有一個功能為 void AdvLibGetVersion(WORD *major, WORD *minor);

    還是那邊可以找到相關的資料

    2007年1月30日 上午 02:00

解答

所有回覆

  • 您好:

           應該是用加入參考的方式來使用,請方案總管中,選取專案,按滑鼠左鍵,點選「加入參考」,再選「COM」頁標籤,就可以加入.dll檔案。請注意,VC++的參數型態和VB.NET有些不同,要先將VB.NET的型態轉成VC++的型態才可以使用。

    2007年1月30日 上午 02:44
  • 你要看這個 DLL 是函數型還是物件型。

    函數型用 this 說的。若發生找不到進入點,就用

    C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\Depends.Exe

    檢查函數名有沒有被編譯器自動修改。

    物件型的用Gavin Lai 說的,確認有沒有註冊過。

    物件型的有兩種,COM 及 .Net managed DLL,VC++ 都可以開發,若是 .Net 的,在參考時,就直接從 .Net 頁籤那邊去拉即可。

    關於 DLL 的分類先前有討論過,你可以搜尋看看。

     

    2007年1月30日 上午 02:55
    版主
  • 那請問一下....
    我是要使用 函數型 DLL, 就那個說明來說, 有很多參數, 如: CharSet:=CharSet.Auto, 這些要如何使用, 又代表什麼意思呢??

    還有, 那個 DLL 可以放程式目錄內, 還是一定要放在 windows 的 system 目錄內呢??

    2007年2月3日 上午 01:40
  • 如果你要完整了解,建議你安裝線上手冊到電腦內,不要只透過網站。

    MSDN 網站有完整的說明,安裝線上手冊就等於把網站說明裝到電腦,就能增加閱讀流暢度,因為各參數都放在各自列舉常數下加以說明,要點很多次才查到 CharSet.Auto ,裝了線上手冊就會方便很多。

    DLLImport 使用需要一點經驗累積的心得,你也可以看一些宣告範例。我的網站上有一些,你點選語言為 VB.NET 的項目,下方基本條件內有原始碼看:

    Windows API 範例:http://tlcheng.twbbs.org/TLCheng/WinAPI/winapi.asp?action=Sample

    DLL 放置位置你可以參考一些既有討論:

    http://forums.microsoft.com/MSDN-CHT/Search/Search.aspx?words=DLL+%u8def%u5f91&localechoice=31748&SiteID=14&searchscope=allforums

    依據線上手冊說明:

    ms-help://MS.MSDNQTR.v80.cht/MS.MSDN.v80/MS.VisualStudio.v80.cht/dv_vccore/html/84bfb380-ad7b-4962-b2d0-51b19a45f1bb.htm

    1. 目前處理序之可執行模組的所在目錄。
    2. 目前的目錄。
    3. Windows 系統目錄。GetSystemDirectory 函式擷取這個目錄的路徑。
    4. Windows 目錄。GetWindowsDirectory 函式擷取這個目錄的路徑。
    5. 列於 PATH 環境變數的目錄。

    註:2. 就是所謂的工作目錄或工作路徑 (Work Directory)

    2007年2月3日 上午 03:14
    版主