2010-05-12 536 views
0

我在vb.net通過visual studio 2008編碼。我已經成功地從我的代碼編譯了一個dll文件但是當我嘗試引用vba中的dll時,我仍然得到「運行時錯誤'453'」。我知道使用vb.net時會出現某種編譯錯誤。有沒有人有任何建議來解決/克服這個問題?我想盡可能避免將代碼翻譯成另一種語言。「運行時錯誤」453'無法找到dll入口點「從vb.net編譯的dll引用vba

這裏是我一直在試圖讓運作的一個簡單的示例代碼:

Example.dll:

Public Class Class1 

    Function Square(ByVal x As Double, ByRef y As Double) 

     y = x * x 

     Return 0 

    End Function 

End Class 

宏在Example.xlsx:

Private Declare Function Square Lib "\Example.dll" (ByRef x As Double, ByRef y As Double) 

Sub Test() 

Dim x, y As Double 

x = 2 
y = 0 

Call Square(x, y) 

MsgBox (y) 

End Sub 

謝謝, Katlynn

回答

0

它已經有一段時間了,因爲我已經做到了,所以我不是確定它是否有必要,但是你是否嘗試添加所有的COM屬性?

http://support.microsoft.com/Default.aspx?kbid=817248

+0

是的,我嘗試使用,而不是默認的Class1 COMclass1,並已經檢查了「註冊爲COM Interop」框。上面的代碼仍然產生了錯誤。我也嘗試添加dll作爲參考,並且出現「無法引用此文件」或類似的錯誤。我也嘗試建立一個像你提供的網站建議的對象,但對象無法正確構建。我覺得有一個循環孔,我沒有看到... 任何其他的建議? – BHurst 2010-05-13 13:24:28