2017-05-03 2 views
0

Das ist mein eventhandler.hnicht aufgelöstes externes Symbol „geschützte statische Struktur“ Fehler trotz in einer CPP-Datei definiert ist

#pragma once 
#include <queue> 
#include <Windows.h> 

class EventHandler 
{ 
public: 

    EventHandler() 
    { 
    } 

    ~EventHandler() 
    { 
    } 

    static std::queue<MSG*> Events; 
}; 

ich viel gesucht habe mein Problem und alle Antworten sagen, um zu versuchen und zu lösen die statische Variable in einer C++ Datei zu erklären, die ich

#include "EventHandler.h" 
    std::queue<MSG*> EventHandler::Events; 

aber ich bekomme immer noch

Error LNK2001 unresolved external symbol "protected: static struct tagMSG * Entity::msg" ([email protected]@@[email protected]@A) 

getan haben und ich kann nicht herausfinden warum. Habe ich etwas verpasst?

+1

Der Fehler sagt 'Entity :: msg' nicht definiert ist, nicht' Eventhandler :: Events'. Können Sie die Definition für "Entity" und die zugehörige cpp angeben? – lcs

+0

Das war das Problem, ich habe vergessen, dass ich eine statische Variable in einer anderen Klasse hatte. Danke, dass du darauf hingewiesen hast. Es hilft, wenn Sie die Fehlermeldung gründlicher lesen – StickyDuck

+0

gewählt, um zu schließen, wie "kann nicht mehr reproduzieren" seit es gelöst wurde –

Antwort

0

Sie auch Notwendigkeit, Ihre statischen in CPP-Datei zu platzieren:

// EventHandler.cpp 
std::queue<MSG*> EventHandler::Events; 
Verwandte Themen