001
15.08.2007, 08:55 Uhr
cmos
|
Hallo, ich habe eine DLL und lib Datei erzeugt, allerdings aus Funktionen.
diskfree.h
C++: |
#ifndef __DISKFREE_H #define __DISKFREE_H #ifndef __DISKFREE__ #define __DISKFREELIB__ __declspec(dllimport) #else #define __DISKFREELIB__ __declspec(dllexport) #endif __DISKFREELIB__ unsigned long DiskFree(unsigned int drive); #endif
|
diskfree.cpp
C++: |
#include <afx.h> #include <winbase.h>
#define __DISKFREE__
#include "diskfree.h"
__DISKFREELIB__ unsigned long DiskFree(unsigned int drive) { unsigned long bytesPerSector, sectorsPerCluster, freeClusters, totalClusters; char DrivePath[4] = {char(drive+65),':','\\','\0'};
if(GetDiskFreeSpace(DrivePath,§orsPerCluster,&bytesPerSector,&freeClusters,&totalClusters)) { return sectorsPerCluster * bytesPerSector * freeClusters; } else { return 0; } }
|
Das funktioniert alles sehr prima, aber sobald es um Klassen geht, gehts los mit Fehlermeldung. Würde ich das in eine Klasse packen wollen , wie würde dann die der Code dafür aussehen ? Ich habe __DISKFREELIB__ unsigned long CDisk:iskFree(....); probiert. Bis zum kompilieren gehts, aber wenn es an das Erstellen der DLL geht kommen Fehlermeldungen. DiskFree ist kein Element von ... usw.
Grüße, cmos |