2015-10-30 35 views
0

我們有一個用C++ 6.0編寫的舊ActiveX控件。 它在VB6中正常工作。VB6中的C++自定義事件缺少參數

現在我想添加一個名爲OnNewPosition的自定義事件。 我使用類嚮導來設置此事件。

這是結果:

EVENT_CUSTOM("OnNewPosition", FireOnNewPosition, VTS_R8 VTS_R8 VTS_R8) 

void FireOnNewPosition(double x, double y, double z) 
    {FireEvent(eventidOnNewPosition,EVENT_PARAM(VTS_R8 VTS_R8 VTS_R8), x, y, z);} 

我也可以觸發這個事件

FireOnNewPosition(1 , 2 , 3); 

在VB6中,我可以看到事件:

Private Sub G_OnNewPosition() 

但參數丟失。 它看起來應該

Private Sub G_OnNewPosition(ByVal x As Double, ByVal y As Double, ByVal z As Double) 

我已經試圖找出區別與其他類似事件是在C++方面的東西。 找不到一個區別:

EVENT_CUSTOM("OnSelect", FireOnSelect, VTS_I4) 

void FireOnSelect(long id) 
    {FireEvent(eventidOnSelect,EVENT_PARAM(VTS_I4), id);} 

這一個顯示在VB6的參數:

Private Sub G_OnSelect(ByVal id As Long) 

什麼我錯過這裏?

回答

0

好的,找不到直接的解決方案。

似乎它必須與名稱OnNewPosition

我用另一個事件名稱嘗試過:NewPosition。用這個參數顯示出來。

然後我再次嘗試OnNewPositionNewPosition存在。 結果是一樣的,沒有參數...

試圖刪除兩個,然後我再給OnNewPosition一試。 沒有運氣。

現在我堅持NewPosition,因爲它的工作原理。