到目前为止,.NET COM 互操作一直运行良好。自从我升级到 Windows 7 后,我的 .NET COM 对象不再工作了。
我的 COM 对象很简单:
namespace Crap
{
[ComVisible(true)]
[Guid("2134685b-6e22-49ef-a046-74e187ed0d21")]
[ClassInterface(ClassInterfaceType.None)]
public class MyClass : IMyClass
{
public MyClass()
{}
public void Test()
{
MessageBox.Show("Finally got in here.");
}
}
}
namespace Crap
{
[Guid("1234685b-6e22-49ef-a046-74e187ed0d21")]
public interface IMyClass
{
}
}
程序集也被标记为 ComVisible。
我使用注册程序集
regasm /codebase /tlb "path"
注册成功(管理员模式)。我尝试了 regasm 32 和 64 位。两次我都收到错误
使用此 vbscript 的“ActiveX 组件无法创建对象 Crap.MyClass”:
dim objReg
Set objReg = CreateObject("Crap.MyClass")
MsgBox typename(objReg)
fuslogvw 也没有给我任何提示。该 COM 对象在我的 Vista 32 位机器上完美运行。
我不明白为什么我无法通过谷歌搜索该问题的解决方案。我真的是唯一一个遇到过这个问题的人吗?
查看 OleView 我看到我的对象已成功注册。我也可以创建其他 COM 对象。它只是不适用于我自己的对象。
谢谢你,凯文