Zum Inhalt springen

static function pointer


FighterFigger

Empfohlene Beiträge

Hallo - ich komme mal wider nicht weiter. icon11.gif

Ich habe ein Projekt (DLL), und darin habe ich einen Funktionspointer, dessen funktion erst später aus einer weiteren DLL extrahiert wird.

Also habe ich mir gedacht, damit alle Klassen (mit jeweils eigener H und CPP) diese Funktion nutzen können, lege ich mir einen Static FunctionPointer an.

typedef unsigned short (*FTWINRTE_STATE_TYP)(unsigned short);

static FTWINRTE_STATE_TYP FTWINRTE_State;

Den diesen Code beinhaltenden Header includiere ich überall, wo ich die Funktion benötige. In DllMain "lade" ich mit GetProcAddress die Funktion:
HMODULE hRCUDLL = LoadLibrary("FTRCU32");

FTWINRTE_State = (FTWINRTE_STATE_TYP)GetProcAddress(hRCUDLL, "FTWINRTE_State");

Allerdings kann ich nur in dem Scope der CPP, in der ich "geladen" habe, diese Funktion auch nutzen. In allen anderen CPPs verweist der Funktionspointer weiterhin auf NULL.

Frage: Ich dachte, static kümmert sich darum, daß ich diese Adresse überall nutzen kann - was habe ich nicht beachtet?

Soll ich das Problem genauer beschreiben?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

Das ist genau die Eigenschaft von "static", der Scope einer static-Deklaration ist local bzgl. der Datei in der sie verwendet wird (aus dem Grund ist der Pointer auch in allen anderen Deiner Objektdateien ein Null-Pointer, da Du pro Datei einen eigenen Pointer hast). Das Problem kannst Du umgehen, in dem Du den Pointer nicht als static deklarierst (in den anderen Dateien solltest Du dann ein "extern ..." verwenden).

Nic

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...