Hallo,
ich benutze IS 6.31 und möchte (wenn verfügbar) GetDiskSpaceEx aufrufen. In der Installshield-Hilfe steht, GetDiskSpaceEx funktioniert erst ab Win 95 OEM SR 2. Daher sollte man über GetProcAddress feststellen, ob GetDiskFreeSpaceExA in der Windows-API vorhanden ist.
Ich habe hier mal den Auszug aus der Hilfe kopiert:
/* The Windows API functions GetProcAddress and GetModuleHandle are prototyped in Winapi.h, which is automatically included when you include Ifx.h in your setup. */
if GetProcAddress ( GetModuleHandle("kernel32.dll"),
"GetDiskFreeSpaceExA" )!=0 then
nFreeBytes = GetDiskSpaceEx ( "C:", BYTES );
else
/* If GetDiskFreeSpaceEx is not supported,
call GetDiskSpace instead of GetDiskSpaceEx. */
nFreeBytes = GetDiskSpace ( "C:" );
endif;
Es fängt damit an, dass die API-Funktionen nicht automatisch verfügbar sind, obwohl es in der Doku so steht. Das ist natürlich kein Problem, ich include winapi.h einfach von Hand.
Dann bekomme ich aber immer aber den Fehler:
lexfunc.rul(58): error C8025: 'GetProcAddress' : undefined identifier
Woran liegt das?
Gruß
Simon Westhues
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
GetProcAddress / GetDiskSpaceEx
Started by
swesthues
, Aug 20 2002 09:32
4 replies to this topic
Posted 20 August 2002 - 09:42
Wo ist das Problem? Bei mir funktioniert es problemlos:
Oder hab ich was überlesen?
Code Sample |
#include "winapi.h" ---- function OnBegin() number nFreeBytes; string svResult; begin /* The Windows API functions GetProcAddress and GetModuleHandle are prototyped in Winapi.h, which is automatically included when you include Ifx.h in your setup. */ if GetProcAddress ( GetModuleHandle("kernel32.dll"), "GetDiskFreeSpaceExA" )!=0 then nFreeBytes = GetDiskSpaceEx ( "C:", BYTES ); else /* If GetDiskFreeSpaceEx is not supported, call GetDiskSpace instead of GetDiskSpaceEx. */ nFreeBytes = GetDiskSpace ( "C:" ); endif; Sprintf(svResult, "Verfügbarer Speicher: '%d'", nFreeBytes); MessageBox(svResult, INFORMATION); abort; end; |
Oder hab ich was überlesen?
Alle menschlichen Fehler sind Ungeduld,
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka
Posted 20 August 2002 - 09:44
übrigens:
in der hilfe steht zum fehler c8025 folgende info:
Kann es also sein, daß du vergessen hast einen Wert zu deklarieren?
in der hilfe steht zum fehler c8025 folgende info:
Quote |
Meldung 'text' : Variable nicht definiert Beschreibung Die in text angegebene Variable wurde nicht definiert. Hinweis(e) Alle Variablen in einem Skript müssen vor der Verwendung im Hauptprogrammblock oder einer Funktion deklariert werden. Überprüfen Sie also, ob die Variable deklariert wurde. Wenn sie deklariert wurde, überprüfen Sie, ob die Schreibweise exakt der Schreibweise an der Fehlerstelle entspricht. |
Kann es also sein, daß du vergessen hast einen Wert zu deklarieren?
Alle menschlichen Fehler sind Ungeduld,
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka
Posted 20 August 2002 - 10:03
Oh mann, da hab ich wohl ein Brett vorm Kopf gehabt.
Das Problem war, dass ich in setup.rul zuerst eine eigene InstallScript-Datei included habe, in der ich GetProcAddress brauchte, und danach erst winapi.h.
Danke, hast mir sehr geholfen :-)
Gruß
Simon Westhues
Das Problem war, dass ich in setup.rul zuerst eine eigene InstallScript-Datei included habe, in der ich GetProcAddress brauchte, und danach erst winapi.h.
Danke, hast mir sehr geholfen :-)
Gruß
Simon Westhues
Posted 20 August 2002 - 10:08
aha, die reihenfolge der abhängikeiten stimmte also nicht )))
immer wieder gerne, westhues
lg sebastian
immer wieder gerne, westhues
lg sebastian
Alle menschlichen Fehler sind Ungeduld,
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka
ein vorzeitiges Abbrechen des Methodischen,
ein scheinbares Einpfählen der scheinbaren Sache.
Kafka