2011-11-30 256 views
0

我有一個使用標準.NET框架庫(System,System.Windows.Forms)在C#中編寫的庫。 這個庫是標記有ComVisible特性以及它的類,我只是有兩類: - 識別TestClass(有一個方法的類) - TESTFORM(空形式)在Excel中的VBA7中引用的64位程序集中使用.NET Framework庫

我註冊的組件,這裏建議:C# COM DLL: do I use Regasm, or Regsvr32?

然後我去了我的Excel加載項並添加了對生成的.TLB文件的引用。

我能夠創造的我「的TestClass」的實例並調用它的方法沒有任何問題,但是當我嘗試創建我的「TESTFORM」的一個實例,它顯示了我這個錯誤:

Run-time error '-2147024894 (80070002)': 

Automation error 
The system cannot find the file specified. 

根據我在試圖讓類運行時看到的問題,問題是Excel中沒有找到依賴項之一(我猜測System.Windows.Forms)。

如何從我的64位Office加載項打開使用.NET編寫的表單?

在此先感謝

+0

漂亮的標準DLL地獄問題。 Fuslogvw.exe告訴你有關託管程序集解析問題。 SysInternals的ProcMon爲您提供*一切*。需要一些挖掘。 –

回答

1

下面的例子可以幫助üVBA7代碼在64位辦公室的工作方式。

添加到64Bit Office Addins可能不是問題,但是當您嘗試在VBA7中使用它們時,您將定義一個嘗試問題。

測試,如果weither使用Office 2010的64位版本(VBA7):

#If Win64(VBA7) Then 
    Declare PtrSafe Function GetTickCount64 Lib "kernel32"() As LongLong 
#Else(VBA) 
    Declare PtrSafe Function GetTickCount Lib "kernel32"() As Long 
#End If 

如果我錯了與解決方案@ kirantej @ gmail.com 因此我聯繫,我的工作了同樣的任務...: - P

相關問題