void Funktion als Funktionsparameter

Den Code habe ich so nicht übermommen, aber meinen nach diesrsem Prinzip angepasst.
Ich verwende den Mircosoft Visual Studio 2010 C++ Express. (Ich programmiere auch in C++), aber C Code macht ja nochts.
 
Na schön, ich kürze das ganze allerdings das Ganze gewaltig, weil ein knapp 2000 Zeilen Code wohl ein bisschen zu viel sind. :D

MAIN.CPP
C++:
#include "StdAfx.h"
...
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
     void (*fnc) () = Parameter;
     ...
     case WM_LBUTTOPNDOWN:
          Funktion(fnc);
          ...
}
...

StdAfx.h
C++:
...
#include "Datei.h"
...

Datei.h
C++:
...
void Funktion(void (*Parameter())());
...

Datei.cpp
C++:
...
void Funktion(void (*Parameter())()) {
     ...
     Parameter();
     ....
}
...
Ich hoffe das ist genügend Code.
Danke für eure Hilfe. :)
 
Zuletzt bearbeitet von einem Moderator:
Hi, also ich würde es so machen:

Datei.h

C:
typedef void(__cdecl *func)(void);

void Funktion(func);

Datei.cpp

C:
void Funktion(func f)
{
  // etlicher code...
  f();
  // weiterer code...
}

MAIN.cpp

C:
// Erstmal Prototyp definieren
void __cdecl Parameter(void);

/// etlicher Code

void __cdecl Parameter(void)
{
  printf("In der Funktion Parameter\n");
}

/// weiterer etlicher Code

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) {
     // DIES WIRD NICHT BENÖTIGT!! void (*fnc) () = Parameter;
     ...
     case WM_LBUTTOPNDOWN:
          Funktion(Parameter);
          ...
}
 
Zurück