使用从Excel中的VBA7引用的64位程序集中的.NET Framework库

时间:2011-11-30 23:07:55

标签: interop 64-bit office-addins regasm typelib

我有一个用C#编写的库,它使用标准的.NET框架库(System,System.Windows.Forms)。 这个库是COMVisible以及它的类,我只有两个类: - TestClass(一个带有一个方法的类) - TestForm(空格)

我按照此处的建议注册了程序集: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编写的表单?

提前致谢

1 个答案:

答案 0 :(得分:1)

下面的示例可以帮助您了解VBA7代码在64位Office中的工作原理。

添加到64位Office Addins可能不是问题,但是当您尝试在VBA7中使用它们时,您肯定会遇到问题。

测试是否使用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