2010-05-07 89 views
2

我有一个.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互操作层。

回答