none
Vb6 Call Vb.Net 2005 產出的DLL RRS feed

  • 問題

  • 請問各位高手

    開發環境是vs2005與vb6.0

    我用vb.net寫了一個.dll,一個.exe, exe 呼叫dll是沒有問題的

    但是dll內相同的方法,我希望也能讓原本vb6所寫的dll給引用(vb6的dll環境下只有.net framework 2.0)

    因此我在vb6的dll環境下裝上.net framework 2.0 SDK,並且做了

    1.regasm xxx.dll

    2.gacutil -i xxx.dll

    但是我在原本vb6的dll做的CreateObject("AAA.BBB")會有"系統找不到指定的檔案"的錯誤

    若加入參考:Dim a as New AAA.BBB  <--加入參考與宣告的時候都沒有錯誤

    但是只要一用到組件的方法時,就會有"ActiveX無法產生物件"的錯誤

    想請教各位高手,是否我的組件安裝方式有誤??還是那個過程出了問題

    感寫賜教!!!

     

    PS 我在專案設定已設定選取 [註冊 COM Interop] 核取方塊

     

    2006年11月29日 上午 08:52

解答

所有回覆

  • 從你的錯誤訊息來說,我偏向是檔案註冊有問題。你在 VB6 內按下 F2 能正確瀏覽你的 VB 2005 物件嗎?

    另外這邊有一些包含 sample code 的,將 VB2005 發佈成 dll 給 VB6 的範例:

    http://msdn2.microsoft.com/en-us/vbrun/ms788241.aspx

    你可以找小範例來看。

    2006年11月29日 下午 12:01
    版主
  • 感謝璉璉 大大的回覆

    我在sample code找到重新註冊.net framework組件的bat檔

    regasm "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\system.dll"
    regasm "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll"

    執行後再註冊自己的dll

    regasm xxx.dll

    vb6就可以Createobject了

    但是小弟我還是有點懷疑,因為因為.net framework2.0是新裝的

    為什麼會產生檔案註冊有問題的情況?亦或是每次新機器裝好我都要重新註冊.net framework的system.dll才能使用?

    這樣好像有點怪怪的對吧?

    還請大大再指教一下!!感謝不盡

    2006年11月30日 上午 01:00