Я использую библиотеку кода из учебника для обеспечения функциональности для передачи функциональных точек нестатических функций-членов в функцию, которая ожидает указатель статической функции, вероятно, помогает узнать, что я подаю в суд, поэтому вот ссылкаhttp://www.codeproject.com/KB/cpp/thunk32.aspx В этом коде используется библиотека Boost, которую я скачал и настроил более или менее из всего.
В библиотеке Thunk один из заголовочных файлов имеет раздел, который читает
#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)" (??0Thunk32Base@indev@@IAE@XZ) 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)" (??0?$Thunk32@VWebCamera@@$$A6AXPAUHWND__@@PAUvideohdr_tag@@@Z@indev@@QAE@XZ)
1>WebCamera.obj : error LNK2019: unresolved external symbol "protected: __thiscall indev::Thunk32Base::~Thunk32Base(void)" (??1Thunk32Base@indev@@IAE@XZ) 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)" (??1?$Thunk32@VWebCamera@@$$A6AXPAUHWND__@@PAUvideohdr_tag@@@Z@indev@@QAE@XZ)
1>WebCamera.obj : error LNK2019: unresolved external symbol _capCreateCaptureWindowA@32 referenced in function "public: bool __thiscall WebCamera::Init(struct HWND__ *)" (?Init@WebCamera@@QAE_NPAUHWND__@@@Z)
Я думаю, что это пытается сказать, что конструктор и деструктор не объявлены и что моя WebCamera.Init () также запутался.Я убедился, что библиотека, которую экспортирует проект Thunk32, включена в мой другой проект, но все же я получаю эти ошибки.
Я хотел бы знать, правильно ли я предположил, что ??=include
должен иметьбыло изменено на #include
, и если я это сделал, то, что я сделал неправильно или не смог сделать это, приводит к этим ошибкам компоновщика.Или, если вы можете предоставить мне другой способ передать указатель функции на нестатическую функцию-член, это было бы здорово.
Спасибо