Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ActiveX的.NET使用者引发TargetParameterCountException 我有一个.NET(3.5 W/DEV Studio 2008)应用程序,它拥有一个Visual Active X(用C++ W/DEV Studio 2003编写)。可以访问所有源,但无法轻松将活动X控件移动到2008年_C#_.net_C++_Com_Activex - Fatal编程技术网

C# ActiveX的.NET使用者引发TargetParameterCountException 我有一个.NET(3.5 W/DEV Studio 2008)应用程序,它拥有一个Visual Active X(用C++ W/DEV Studio 2003编写)。可以访问所有源,但无法轻松将活动X控件移动到2008年

C# ActiveX的.NET使用者引发TargetParameterCountException 我有一个.NET(3.5 W/DEV Studio 2008)应用程序,它拥有一个Visual Active X(用C++ W/DEV Studio 2003编写)。可以访问所有源,但无法轻松将活动X控件移动到2008年,c#,.net,c++,com,activex,C#,.net,C++,Com,Activex,这在过去很管用。对activex控件进行了一些更改,现在,在activex上调用一个方法时,我100%的时间都会得到TargetParameterCountException。活动X方法的签名为: LONG CMyActive::License(LPCTSTR string1, LPCTSTR string2, LONG long1, LPCTSTR string3, LPCTSTR string4); 在reflector的对象浏览器中查看该方法时,.NET将其视为: public virt

这在过去很管用。对activex控件进行了一些更改,现在,在activex上调用一个方法时,我100%的时间都会得到TargetParameterCountException。活动X方法的签名为:

LONG CMyActive::License(LPCTSTR string1, LPCTSTR string2, LONG long1, LPCTSTR string3, LPCTSTR string4);
在reflector的对象浏览器中查看该方法时,.NET将其视为:

public virtual int License(string string1, string string2, int long1, string string3, string string4)
为了演示的目的,我重命名了参数(boss对任何代码都会感到不安)。我留下了方法名,因为它可能是相关的

在这项工作之前有方法调用。我只是不明白为什么我会突然出现这种异常。HRESULT为0x8002000e,快速搜索似乎表明这是一个常规结果

谢谢大家的阅读

编辑

谢谢你的指点。知道别人感到困惑是一种安慰。奇怪的是,这确实奏效了。此行为在重建活动X后突然出现。没有接口或其他IDL更改。它可以在多台机器上运行,而不仅仅限于一个开发盒之类的设备

编辑2

对于S&G,我添加了一种新方法

LONG CMyActive::XXXLicense(LPCTSTR string1, LPCTSTR string2, LONG long1, LPCTSTR string3, LPCTSTR string4);

重建了一切,现在我可以调用新方法。。。这闻起来像是编译器和/或.NET的COM互操作性层中的错误

HRESULT是
DISP_E_BADPARAMCOUNT
(谷歌搜索比“0x8002000e”更好)

似乎其他人也遇到了这个问题: