Hallo,
ich habe folgendes Problem. Ich würde gerne per JNI die Anzahl der Prozesse, Handles und Threads ausgeben. Bekomme jedoch die Meldung "warning: implicit declaration of function GetPerformanceInfo". Habe leider nicht so große Ahnung, was C/C++ angeht. Wäre wirklich geil, wenn ihr mir helfen könntet. Vielen Dank schonmal im Voraus.
Gruß, Tom
ich habe folgendes Problem. Ich würde gerne per JNI die Anzahl der Prozesse, Handles und Threads ausgeben. Bekomme jedoch die Meldung "warning: implicit declaration of function GetPerformanceInfo". Habe leider nicht so große Ahnung, was C/C++ angeht. Wäre wirklich geil, wenn ihr mir helfen könntet. Vielen Dank schonmal im Voraus.
Gruß, Tom
Code:
#include <windows.h>
#include <jni.h>
#include "cpuinfo.h"
#include <stdio.h>
#include <stdlib.h>
#include <psapi.h>
typedef struct _PERFORMANCE_INFORMATION {
DWORD cb;
SIZE_T CommitTotal;
SIZE_T CommitLimit;
SIZE_T CommitPeak;
SIZE_T PhysicalTotal;
SIZE_T PhysicalAvailable;
SIZE_T SystemCache;
SIZE_T KernelTotal;
SIZE_T KernelPaged;
SIZE_T KernelNonpaged;
SIZE_T PageSize;
DWORD HandleCount;
DWORD ProcessCount;
DWORD ThreadCount;
} PERFORMANCE_INFORMATION,
*PPERFORMANCE_INFORMATION;
JNIEXPORT void JNICALL Java_businessLayer_CpuInfo_getThreads (JNIEnv *env, jobject jobj) {
PERFORMANCE_INFORMATION pinf;
DWORD cb = sizeof(PERFORMANCE_INFORMATION);
GetPerformanceInfo(pinf, cb);
jclass cls;
jfieldID fid;
cls = (*env)->GetObjectClass(env, jobj);
fid = (*env)->GetFieldID(env, cls, "threads", "I");
if (fid == NULL) return;
(*env)->SetIntField(env, jobj, fid, pinf.ThreadCount);
}