Ich versuche, eine statische Variable innerhalb einer DLL zu ändern, so dass, wenn die externe Funktion "ChangeVar" aufgerufen wird, es die statische Variable ändern wird. Mein Problem ist, dass ich nichts zum Kompilieren bekomme. Der gesamte nachstehende Code befindet sich in einem einzigen C++-Projekt, das in einer einzigen DLL kompiliert wurde. Ich habe keine Probleme, die Funktion aufzurufen, solange ich nicht versuche, die statische Variable zu ändern oder zu erhalten.
Static.h
class API
{
public:
static int iValue;
};
Funktionen.cpp
#include "Static.h"
extern "C"
{
__declspec(dllexport) bool ChangeVar()
{
API::iValue = 0;
if(API::iValue == 0)
{
return true;
}
else
{
return false;
}
}
}
Wenn ich dies tue, habe ich nur zwei Fehler:
Error 1 error LNK2001: unresolved external symbol "public: static int API::iValue" (?iValue@API@@2HA)
Error 2 error LNK1120: 1 unresolved externals
Was muss ich tun, um eine statische Variable zu erstellen (offensichtlich meine Art und Weise nicht funktioniert), und wie würde ich es ändern, so dass es funktioniert wie statische sollte, wo sein Wert im Speicher geändert werden?