错误:80070057参数不正确。 (HRESULT异常:0x80070057(E_INVALIDARG))

时间:2017-12-12 13:14:22

标签: c# visual-c++ com

我有一个要求,我需要从C#中获取C ++ Unmanaged dll方法的结果。我正在尝试为类类型创建一个实例,然后尝试使用

调用该方法
class ATL_NO_VTABLE CMyClass : 
public CComObjectRootEx<CComMultiThreadModel>,
public CComCoClass<CMyClass, &CLSID_MyClass>,
public IDispatchImpl<IMyClass, &IID_IMyClass, &LIBID_MyLib>
{
    STDMETHOD(MethodToInvoke)(WORD *pVal);
}

非托管dll是一个COM DLL,我无法修改它,我必须使用它。此外,我没有与该COM DLL互操作,我不确定是否需要有一个或要求某人创建它。以下是那里的样本声明

以下是IDL:

MethodToInvode

以下是类声明:

 Type mytype = Type.GetTypeFromProgID("MyProgID.MyClass");
 object instance = Activator.CreateInstance(mytype);
 result = Convert.ToString(mytype .GetType().InvokeMember("MethodToInvoke", BindingFlags.InvokeMethod, null, instance, null));

为了调用上面的object instance = Activator.CreateInstance(mytype);我正在尝试使用C#应用程序中的以下代码:


Creating an instance of the COM component with CLSID {XXXXX-XXX-XXX-XXXX-XXXXXX} from the IClassFactory failed due to the following error: 80070057 The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)).

我在{{1}}

行上听到了以下异常

例外: {{1}}

请让我知道我所尝试的是否可以实现,如果可以实现,我应该验证什么以确保我的工作。提前致谢

0 个答案:

没有答案