Leana Geschrieben 13. August 2002 Teilen Geschrieben 13. August 2002 BOOL CSystemInfo::GetDiscFreeSpace(LPCTSTR lpszPath, DWORDLONG* pnFree, DWORDLONG* pnTotal) { BOOL bRet = FALSE; HINSTANCE hInstance; hInstance = LoadLibrary("KERNEL32.DLL"); if(hInstance) { FARPROC lpfnDLLProc = NULL; lpfnDLLProc = GetProcAddress((HMODULE)hInstance, "GetDiskFreeSpaceEx"); if(lpfnDLLProc) { ULARGE_INTEGER nTotalBytes; ULARGE_INTEGER nTotalFreeBytes; ULARGE_INTEGER nTotalAvailable; if(lpfnDLLProc(lpszPath, &nTotalAvailable, &nTotalBytes, &nTotalFreeBytes)) { *pnFree = nTotalAvailable.QuadPart; *pnTotal = nTotalBytes.QuadPart; bRet = TRUE; } } FreeLibrary(hInstance); } //ansonsten muss man GetDiskFreeSpace() if(!bRet) { ULONG secpercluster, bytespersec, nooffreeclusters, totalnoofclusters; if(GetDiskFreeSpace(lpszPath, &secpercluster, &bytespersec, &nooffreeclusters, &totalnoofclusters)) { *pnFree = (nooffreeclusters * secpercluster * bytespersec); *pnTotal = totalnoofclusters * secpercluster * bytespersec; bRet = TRUE; } } return bRet; } there I get the error : too many actual parameters Can someone help me why I get the error? thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
neff Geschrieben 13. August 2002 Teilen Geschrieben 13. August 2002 Hi, also: 1. es ist nicht notwendig die kernel32.dll zu laden, weil sie sowieso geladen wird. man braucht nur GetModuleHandle("kernel32.dll"). 2. In Deinem Fall wäre es so: ... typedef void (CALLBACK *FP)(LPCTSTR,PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); FP lpfnDLLProc = NULL; lpfnDLLProc = (FP)GetProcAddress(GetModuleHandle("kernel32.dll"), "GetDiskFreeSpaceExW"); if(lpfnDLLProc) { ULARGE_INTEGER nTotalBytes; ULARGE_INTEGER nTotalFreeBytes; ULARGE_INTEGER nTotalAvailable; (*lpfnDLLProc)(lpszPath, &nTotalAvailable, &nTotalBytes, &nTotalFreeBytes); ... } Für die Erklärung siehe Artikel Q117428 MSDN. Ich hoffe, ich habe Dir geholfen. Gruß neff Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Leana Geschrieben 14. August 2002 Autor Teilen Geschrieben 14. August 2002 Danke, aber das war nicht das problem! Es lag nur an den Pointer, den musste ich erst definieren, wie er aufgebaut wird! also ein typedef!!! Aber trotzdem danke !!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.