" COM目标没有实现IDispatch"例外

时间:2014-09-22 13:03:30

标签: c# com atl idispatch

我是COM编程的新手,解决方案可能很简单,但我不能。 我的COM客户端代码与早期绑定工作正常。后期绑定问题。

客户端代码:使用.net 4.0框架

System.Type objType = System.Type.GetTypeFromProgID("Simple_ATL.First_ATL.1", "localhost", true);
object obj = System.Activator.CreateInstance(objType);
Type actualobj = obj.GetType();
actualobj.InvokeMember("AddNumbers", BindingFlags.InvokeMethod | BindingFlags.Instance |    BindingFlags.Public, null, obj, new object[] { 10, 20 }); 

actualobj.InvokeMember抛出“COM目标未实现IDispatch”异常。

IDL文件:

[
    object,
    uuid(C8F6E230-2672-11D3-A8A8-00105AA943DF),
    dual,
    helpstring("IFirst_ATL Interface"),
    pointer_default(unique)
]
interface IFirst_ATL : IDispatch
{
    [id(1), helpstring("method MultipleNumbers")] HRESULT MultipleNumbers([in] long Num1, [in] long Num2, [out, retval] long *ReturnVal);
    [id(2), helpstring("method AddNumbers")] HRESULT AddNumbers([in] long Num1, [in] long Num2, [out , retval] long *ReturnVal);
};

[
     uuid(34C534A0-2671-11D3-A8A8-00105AA943DF),
     version(1.1),
     helpstring("Simple_ATL 1.1 Type Library")
]
library SIMPLE_ATLLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");

[
    uuid(970599E0-2673-11D3-A8A8-00105AA943DF),
    version(2.1),
    helpstring(" New First_ATL Class")
]
coclass First_ATL
{
    [default] interface IFirst_ATL;
};

};

请告诉我我的代码出了什么问题?

谢谢, 帕

0 个答案:

没有答案