Was ist das fürn Fehler?? __stdcall
-
Hi,
kann mir jemand sagen, was ich falsch mache?
ich bekomme in folgendem Codeschnipsel:typedef NTSTATUS (__stdcall *P_NTQSI)( SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG ); mutable bool m_bInitialised; mutable P_NTQSI m_p_NtQuerySystemInformation; mutable int m_processorCount;diese Fehler:
d:\CPU\CpuUsage.h(37): error C2501: 'CCpuUsage::P_NTQSI': Fehlende Speicherklasse oder Typspezifizierer
d:\CPU\CpuUsage.h(33): error C2059: Syntaxfehler: '__stdcall'
d:\CPU\CpuUsage.h(33): error C2059: Syntaxfehler: '__stdcall'
d:\CPU\CpuUsage.h(33): error C2061: Syntaxfehler: Bezeichner 'SYSTEM_INFORMATION_CLASS'
d:\CPU\CpuUsage.h(33): error C2061: Syntaxfehler: Bezeichner 'SYSTEM_INFORMATION_CLASS'
d:\CPU\CpuUsage.h(33): error C2091: Funktionsergebnis ist eine Funktion
d:\CPU\CpuUsage.h(33): error C2091: Funktionsergebnis ist eine Funktion
d:\CPU\CpuUsage.h(37): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_p_NtQuerySystemInformation'
d:\CPU\CpuUsage.h(37): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'm_p_NtQuerySystemInformation'
d:\CPU\CpuUsage.h(37): error C2501: 'CCpuUsage::m_p_NtQuerySystemInformation': Fehlende Speicherklasse oder Typspezifizierer
d:\CPU\CpuUsage.h(37): error C2501: 'CCpuUsage::m_p_NtQuerySystemInformation': Fehlende Speicherklasse oder Typspezifizierer
d:\CPU\CpuUsage.h(37): error C2501: 'CCpuUsage::P_NTQSI': Fehlende Speicherklasse oder Typspezifizierer
d:\CPU\CpuUsage.cpp(23): error C3861: 'm_p_NtQuerySystemInformation': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden
-
Ist der Code von dir? Wenn ja, was kommt heraus, wenn du das '__stdcall' (a) weglässt oder (b) vor die Klammer setzt?
-
nein, der code ist nicht von mir. ist eine klasse, die ich irgendwo mal bekommen hab und jetzt mal benutzen wollte...
(a) und (b) funzen nicht... ähnliche fehler...theoretisch wird doch da eigentlich dem bezeichner P_NTQSI eine funktion zugewiesen, oder? später im source wird der variable dann NtQuerySystemInformation zugewiesen...
laut msdn ist die syntax auch richtig:typedef BOOL (__stdcall *funcname_ptr)(void * arg1, const char * arg2, DWORD flags, ...);
-
Hast du dir mal die Hilfe zum C2059 durchgelesen? Dort steht auch sinngemäß drin, daß der Fehler seine Ursache auch etwas weiter oben haben könnte.
(btw, sind die Typen NTSTATUS und SYSTEM_INFORMATION_CLASS auch definiert?)
-
ja, hab ich durchgelesen.. eigentlich müsste alles initialisiert sein.. die winternl.h hab ich includet..