Неразрешенный внешний символ class wxEventTypeTag<class wxThreadEvent> Topic is solved

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
extream
In need of some credit
In need of some credit
Posts: 2
Joined: Wed Jun 08, 2022 8:00 am

Неразрешенный внешний символ class wxEventTypeTag<class wxThreadEvent>

Post by extream »

Доброго времени суток! Пытаюсь написать шаблон проекта VisualStudio для работы с потоками wxThread но натолкнулся на проблему линковки этого куска кода MainForm.cpp:

Code: Select all

...
this->Connect(wxEVT_COMMAND_MYTHREAD_UPDATE, wxThreadEventHandler(MainForm::OnThreadUpdate), NULL, this);
this->Connect(wxEVT_COMMAND_MYTHREAD_COMPLETED, wxThreadEventHandler(MainForm::OnThreadCompletion), NULL, this);
...
Ошибка линовки:
1>MainForm.obj : error LNK2001: неразрешенный внешний символ ""class wxEventTypeTag<class wxThreadEvent> const wxEVT_COMMAND_MYTHREAD_COMPLETED" ([email protected]@[email protected]@@@@B)"
1>MainForm.obj : error LNK2001: неразрешенный внешний символ ""class wxEventTypeTag<class wxThreadEvent> const wxEVT_COMMAND_MYTHREAD_UPDATE" ([email protected]@[email protected]@@@@B)"

В MainForm.h декларации ивентов присутствуют и здесь всё ок

Code: Select all

...
wxDECLARE_EVENT(wxEVT_COMMAND_MYTHREAD_COMPLETED, wxThreadEvent);
wxDECLARE_EVENT(wxEVT_COMMAND_MYTHREAD_UPDATE, wxThreadEvent);
...
Полный проект:
wxThreadTest1.7z
(843.58 KiB) Downloaded 5 times
User avatar
doublemax
Moderator
Moderator
Posts: 17306
Joined: Fri Apr 21, 2006 8:03 pm
Location: $FCE2

Re: Неразрешенный внешний символ class wxEventTypeTag<class wxThreadEvent>

Post by doublemax »

For each wxDECLARE_EVENT line you also need a matching wxDEFINE_EVENT.

The wxDEFINE_EVENT lines must be in a .cpp file, not in a header!
Use the source, Luke!
extream
In need of some credit
In need of some credit
Posts: 2
Joined: Wed Jun 08, 2022 8:00 am

Re: Неразрешенный внешний символ class wxEventTypeTag<class wxThreadEvent>

Post by extream »

doublemax wrote: Wed Jun 08, 2022 9:25 am For each wxDECLARE_EVENT line you also need a matching wxDEFINE_EVENT.

The wxDEFINE_EVENT lines must be in a .cpp file, not in a header!
Thanks for your reply. Now it work!
Post Reply