我正在使用教程中的代碼庫提供的功能將非靜態成員函數的函數點傳遞給需要靜態函數指針的函數,可能有助於知道我起訴了什麼,所以這裏是鏈接http://www.codeproject.com/KB/cpp/thunk32.aspx此代碼使用Boost庫,我已經下載並設置了或多或少的一切。MSVS2010鏈接器錯誤悲傷 - 不完全確定什麼是錯誤
在咚庫,頭文件中的一個具有單元,讀取
#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,THUNK32_MAX_ARGS,"Thunk32_template.h"))
??=include BOOST_PP_ITERATE()
#undef BOOST_PP_ITERATION_PARAMS_1
,但是這給了我史詩大量的錯誤,我可以通過改變它解決到
#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,THUNK32_MAX_ARGS,"Thunk32_template.h"))
#include BOOST_PP_ITERATE()
#undef BOOST_PP_ITERATION_PARAMS_1
這個下載的代碼作爲第二個項目包含在我的解決方案中,它能夠愉快地進行編譯和構建。但我的項目正在使用此代碼的問題聯繫起來,救人問,我得到這些錯誤信息
1>WebCamera.obj : error LNK2019: unresolved external symbol "protected: __thiscall indev::Thunk32Base::Thunk32Base(void)" ([email protected]@@[email protected]) referenced in function "public: __thiscall indev::Thunk32<class WebCamera,void __cdecl(struct HWND__ *,struct videohdr_tag *)>::Thunk32<class WebCamera,void __cdecl(struct HWND__ *,struct videohdr_tag *)>(void)" ([email protected]@@[email protected]@[email protected]@@[email protected]@@[email protected])
1>WebCamera.obj : error LNK2019: unresolved external symbol "protected: __thiscall indev::Thunk32Base::~Thunk32Base(void)" ([email protected]@@[email protected]) referenced in function "public: __thiscall indev::Thunk32<class WebCamera,void __cdecl(struct HWND__ *,struct videohdr_tag *)>::~Thunk32<class WebCamera,void __cdecl(struct HWND__ *,struct videohdr_tag *)>(void)" ([email protected]@@[email protected]@[email protected]@@[email protected]@@[email protected])
1>WebCamera.obj : error LNK2019: unresolved external symbol [email protected] referenced in function "public: bool __thiscall WebCamera::Init(struct HWND__ *)" ([email protected]@@[email protected]@@Z)
我覺得這是想說的是,構造函數和析構函數沒有聲明,我的WebCamera.Init ()也混亂了。我確信Thunk32項目導出的庫包含在我的其他項目中,但仍然出現這些錯誤。
我想知道,如果我已經做出了正確的假設,??=include
應該已經更改爲#include
,如果我有,我做了什麼錯誤或未能做到這些結果在這些鏈接器錯誤。或者,如果您可以提供給我一種不同的方式,可以將函數指針傳遞給非常靜態的成員函數。
感謝
揭掉,indev :: Thunk32Base既有structors,他們已經部分的代碼我沒有收到任何編譯錯誤,只是我提到的鏈接錯誤 – thecoshman 2010-10-13 17:59:08
你不會因爲缺少函數定義而得到編譯時錯誤,你只會得到鏈接時間錯誤,例如原始問題中的錯誤,所以請確保函數不僅僅是declar編輯,但也**定義**! – 2010-10-13 18:05:47
是的,他們被定義 – thecoshman 2010-10-13 18:16:23