.NET COM interop cho đến nay luôn hoạt động khá độc đáo. Kể từ khi tôi nâng cấp lên Windows 7 tôi không nhận được các đối tượng .NET COM của tôi để làm việc nữa..NET COM Interop trên Windows 7 64Bit mang lại cho tôi một nhức đầu
đối tượng COM của tôi là dễ dàng như:
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
{
}
}
lắp ráp được đánh dấu ComVisible là tốt.
tôi đăng ký assembly bằng
regasm /codebase /tlb "path"
đăng ký thành công (chế độ quản trị). Tôi đã thử chế độ 32 và 64 bit. Cả hai lần tôi nhận được lỗi
"ActiveX thành phần không thể tạo đối tượng Crap.MyClass" sử dụng VBScript này:
dim objReg
Set objReg = CreateObject("Crap.MyClass")
MsgBox typename(objReg)
fuslogvw không cho tôi bất kỳ gợi ý một trong hai. Đối tượng COM đó hoạt động hoàn hảo trên máy Vista 32 bit của tôi.
Tôi không hiểu tại sao tôi không thể tìm ra giải pháp cho vấn đề đó .. Tôi có thực sự là người duy nhất từng gặp vấn đề đó không?
Nhìn vào OleView Tôi thấy đối tượng của mình được đăng ký thành công. Tôi cũng có thể tạo các đối tượng COM khác .. nó chỉ không hoạt động với các đối tượng của riêng tôi.
Cảm ơn bạn, Kevin
Bạn có thể đánh dấu chuỗi này là đã trả lời không? Cảm ơn :) –