Leana Geschrieben 13. August 2002 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
neff Geschrieben 13. August 2002 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
Leana Geschrieben 14. August 2002 Autor 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 !!!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden