2010-05-07 27 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互操作層。

回答