我正在尝试构建一个可以使用 64 位 excel 2010 从 VBA 注册和使用的对象库。我正在使用 Dev Studio 2008。我认为这是一个 64 位问题,因为我很确定当我尝试使用它时它有效我以前版本的 Excel (XP)。我在“程序集信息信息”对话框中单击了“使 COM 可见”,并在构建标记中单击了“注册 COM 互操作”。当我将目标类型设置为 x64 时,我根本无法在引用对话框中看到该库。如果我选择任何 CPU,我可以注册它,但是当我尝试实例化它时出现“无法创建 Active X 对象”错误。
namespace Tester
{
[Guid("D6F88E95-8A27-4ae6-B6DE-0542A0FC7039")]
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
public interface _Numbers
{
int GetDay();
int GetMonth();
int GetYear();
int DayOfYear();
}
[Guid("13FE32AD-4BF8-495f-AB4D-6C61BD463EA4")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("Tester.Numbers")]
public class Numbers : _Numbers
{
public Numbers(){}
public int GetDay()
{
return(DateTime.Today.Day);
}
public int GetMonth()
{
return(DateTime.Today.Month);
}
public int GetYear()
{
return(DateTime.Today.Year);
}
public int DayOfYear()
{
return(DateTime.Now.DayOfYear);
}
}
}