Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » typedef + Funktionszeiger = Verwirrung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.06.2009, 14:35 Uhr
banshee



Hallo zusammen,

könnte mir mal jemand schnell erklären, was genau hier passiert?


C++:
typedef BOOL (__stdcall *PReadProcessMemoryRoutine)(
    HANDLE      hProcess,
    DWORD64     qwBaseAddress,
    PVOID       lpBuffer,
    DWORD       nSize,
    LPDWORD     lpNumberOfBytesRead,
    LPVOID      pUserData  // optional data, which was passed in "ShowCallstack"
    );

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.06.2009, 16:15 Uhr
0xdeadbeef
Gott
(Operator)


Es wird ein Alias für BOOL(*)(HANDLE, DWORD64, PVOID, DWORD, LPDWORD, LPVOID) namens PReadProcessMemoryRoutine definiert.

Einfacheres Beispiel:

C++:
#include <stdio.h>

void foo(void) {
  puts("Hallo, Welt.");
}

int main(void) {
  typedef void (*func_t)(void);
  func_t bar = foo;

  bar();

  return 0;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.06.2009, 12:12 Uhr
banshee



Gibt es denn da irgendeinen Unterschied zur Version ohne typedef?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
24.06.2009, 14:20 Uhr
0xdeadbeef
Gott
(Operator)


Du kannst halt Variablen vom Typ void(*)(void) einfacher deklarieren, und wenn sich am Interface irgendwann mal was ändern sollte (du z.B. void(*)() brauchst), musst du nicht überall im Code die Deklarationen ändern.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: