錯誤一:5 I v2 U3 b/ x$ M6 F$ q3 A
/ Q2 O8 R( P# e
error C2259: 'MyEventReceiver' : cannot instantiate abstract class
" D' r$ Y" j2 m, g4 Rdue to following members:
z; X+ r, `" _% n" S% y* a 'bool irr::IEventReceiver::OnEvent(const irr::SEvent )' : is abstract
3 @; `. J6 p D( {: V$ x: y% V' e v
: D. w- q! S# G- M! b0 g原因是在按照Irrlicht的教程做時,由一個地方教程裡有問題,有問題的地方标注如下紅色:
: F; k' v. i" K5 v- Z( o( _* i$ z2 n$ X5 N
class MyEventReceiver : public IEventReceiver
, a0 d7 p* W) J{: y2 g/ c. d; s: F: R, U' r9 `' ?
public:) d' u5 q) E O ~9 b
virtual bool OnEvent(SEvent event)
5 o/ O1 K N. U0 p b {
: ^( ]% h$ C- V1 c if (event.EventType == EET_GUI_EVENT)
5 C3 ]* n5 }; |- u1 _+ ]6 g* t {5 W- I0 n* ?7 T8 F, p2 ]* D
s32 id = event.GUIEvent.Caller->getID();
0 z- W) ~" Z; W r IGUIEnvironment* env = device->getGUIEnvironment();4 g. M9 H$ z8 k
9 k1 w' R2 x7 G1 B 8 v# F: Y+ R' ~; N- X
應該改為 virtual bool OnEvent(const SEvent event)
: u2 ?9 n8 v- v h , A ?+ l) o6 Y+ c( r: S4 `
就能解決這個錯誤了~
6 {- k- q: w; o: t) a- ]* l7 }% Q
( h. P) b8 c$ O6 l- S錯誤二:
2 _: z* U) M, r* G; I! b( t x8 r/ H' J+ V
! c5 |) L9 p- H$ /1 B3 T$ y y
; J# D* L0 r% ~, Z5 P如果出現這個錯誤,将‘Irrlicht.dll’檔案拷到目前工程的檔案中。再編譯連結一次,就ok了~