我有一个.NET(3.5 w/Dev Studio 2008)应用程序,它托管着一个可视的Active X(用C++ w/Dev Studio 2003编写)。有权访问所有来源,但不能轻松将Active X控件移动到2008年。ActiveX控件的.NET消费者TargetParameterCountException
这在过去工作得很好。对Active X控件做了一些更改,现在,当在Active X上调用一个方法时,我得到了100%的TargetParameterCountException。所述的Active X方法的签名是:
LONG CMyActive::License(LPCTSTR string1, LPCTSTR string2, LONG long1, LPCTSTR string3, LPCTSTR string4);
当观看在反射镜的对象浏览器的方法中,.NET视其为:
public virtual int License(string string1, string string2, int long1, string string3, string string4)
我改名为示范目的的参数(老板得到颠簸关于任何代码)。我留下了方法名称,因为它可能是相关的。
在该工作之前有方法调用。我只是不知道为什么我突然得到这个例外。 HRESULT是0x8002000e,快速搜索似乎表明这是一个通用的。
感谢大家的阅读。
编辑
感谢您的指针。知道其他人感到困惑时有一些安慰。奇怪的是,这确实奏效。在重建Active X之后,此行为会突然出现。无界面或其他IDL更改。它在多台机器上,不仅仅局限于一个开发盒等。
编辑2
使用S & G公司我增加了一个新方法,
LONG CMyActive::XXXLicense(LPCTSTR string1, LPCTSTR string2, LONG long1, LPCTSTR string3, LPCTSTR string4);
重建的一切,现在我可以调用新的方法......这闻起来像无论是在一个错误编译器和/或.NET的COM互操作层。