gpt4 book ai didi

c# - ActiveX 的 .NET 使用者抛出 TargetParameterCountException

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:47 25 4
gpt4 key购买 nike

我有一个 .NET (3.5 w/Dev Studio 2008) 应用程序,它承载一个可视化 Active X(用 C++ w/Dev Studio 2003 编写)。可以访问所有源,但不能轻松地将 Active X 控件移动到 2008。

这在过去工作得很好。对 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)

出于演示目的,我重命名了参数(老板对任何代码都感到紧张)。我留下了方法名称,因为它可能是相关的。

在该工作之前有方法调用。我只是看不出为什么我突然得到这个异常(exception)。 HRESULT 是 0x8002000e,快速搜索似乎表明这是一个通用的结果。

感谢大家的阅读。

编辑

多谢指点。知道别人感到困惑是一种安慰。奇怪的是,这确实有效。此行为在重建 Active 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”更适合谷歌搜索)。

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

http://www.codeguru.com/forum/showthread.php?t=96353

http://forums.devx.com/showthread.php?t=85215

关于c# - ActiveX 的 .NET 使用者抛出 TargetParameterCountException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com