问题描述
我用C#写了一个非常简单的DLL,看起来像这样:
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("EAA4976A-45C3-4BC5-BC0B-E474F4C3C83F")]
[ComVisible(true)]
public interface IComClass1
{
void Do();
}
[Guid("0D53A3E8-E51A-49C7-944E-E72A2064F933"),ProgId("MyComProgId"),ComVisible(true)]
public class ComClass1 : IComClass1
{
void IComClass1.Do()
{
System.Windows.Forms.MessageBox.Show("ComClass1 ^^^^^ Test");
}
}
我的客户端看起来像这样:
[InterfaceType(ComInterfaceType.InterfaceIsDual)]
[Guid("EAA4976A-45C3-4BC5-BC0B-E474F4C3C83F")]
public interface IComClass1
{
void Do();
}
class Program
{
static void Main(string[] args)
{
var type = Type.GetTypeFromProgID("MyComProgId");
var com = (IComClass1)Activator.CreateInstance(type); // ERROR: System.InvalidCastException
com.Do();
}
}
由于某种原因,这里有一个错误:InvalidCastException
。
为什么会发生错误?我错了吗?以及我该如何解决?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)