2 Stimmen

C++ nicht aufgelöste Externe beim Aufruf statischer Variablen

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X