2009-07-02 34 views
0

使用託管C++(新建項目嚮導中的C++/CLR)處理VisStudio 2008插件。Managed C++中的事件:事件問題,WindowEvents

在OnConnection()函數中,我想向WindowEvents集合添加一個處理程序。

當我這樣做:
//胡克事件
EnvDTE ::事件^事件= _applicationObject->活動;
EnvDTE :: WindowEvents^winEvents = events-> WindowEvents();

我得到一個錯誤信息:
錯誤C2660: 'EnvDTE ::活動:: ::的WindowEvent得到':函數不接受0參數

在對象瀏覽器,我覺得這一點:
公共EnvDTE .WindowEvents WindowEvents(EnvDTE.Window WindowFilter = null){get; }

感謝約我做錯了任何提示...

+0

如果我改變像 的WinEvents =事件 - >的WindowEvent調用的東西(0); 我仍然得到「不帶0參數」的錯誤。 Arggh。 EnvDTE :: FindEvents^fe = events-> FindEvents; 按預期工作。 – Number8 2009-07-02 17:39:49

回答

1

找到了答案:

EnvDTE::Events^events = _applicationObject->Events; 
_winEvents = events->WindowEvents[nullptr]; 

注意的方括號...

1

嘗試

EnvDTE::WindowEvents ^winEvents = events->WindowEvents; 

沒有()。 WindowEvents是一個屬性而不是方法。

+0

感謝您的回覆,但編譯器似乎不在乎......相同的結果:「'get'不接受0個參數」。 – Number8 2009-07-02 16:24:26