0

我有一個C++ DLL這是我給一個指向靜態函數作爲回調:內存訪問衝突從靜態回調函數

static void CallBackFunc(int num); 

爲了這個函數來訪問我的代碼的其餘部分我有一個指針類在頭:

static void* m_obj; 

並在代碼:

void* CPPUDlg::m_obj; 

,並在靜態函數我有:

CPPUDlg* m_pointer = (CPPUDlg*)m_obj; 

m_pointer->OnSerialMsg(num); 

這使得回調調用非靜態函數,但是當這個功能在的applcation其他類調用等功能出了問題與內存訪問衝突是在不任何變量靜態的。

任何人都可以發現我可能做錯了什麼嗎?我需要所有類的靜態實例還是沿着這些線?

謝謝!

+1

是否將'm_obj'設置爲活動對象? – sharptooth

回答

0

是否將m_obj設置爲活動對象? - 銳利

非常感謝您的評論。

我檢查,我忘了設定m_obj

在我初始化我現在設置m_obj = this;

,一切完美的作品!

謝謝!