.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 と 64bit を試しました。どちらの場合もエラーが発生します
このvbscriptを使用して「ActiveXコンポーネントはオブジェクトCrap.MyClassを作成できません」:
dim objReg
Set objReg = CreateObject("Crap.MyClass")
MsgBox typename(objReg)
fuslogvw もヒントを与えてくれません。その COM オブジェクトは、私の Vista 32 ビット マシンで完全に動作します。
その問題の解決策をグーグルで検索できなかった理由がわかりません..その問題に遭遇したのは本当に私だけですか?
OleView を見ると、オブジェクトが正常に登録されていることがわかります。他の COM オブジェクトも作成できます。自分のオブジェクトだけでは機能しません。
ありがとう、ケビン