![]() |
WINAPI-Funktionen Windows Versionsabhängig
Hallo zusammen,
ich habe mal wieder ein Problem, ich verwende in meinem Programm ![]()
Delphi-Quellcode:
Wenn ich jetzt das Program unter Windows XP und höher aufrufe funktioniert alles ganz wunderbar. Nur wenn ich das Programm jetzt unter Windows 2000 aufrufe, gibt es die Fehlermeldung, das er den Einstiegspunkt nicht findet. Das ist mir ja auch klar, wie man unter
function GetAdaptersAddresses(Family: ULONG; Flags: cardinal; Reserved: PVOID;
pAdapterAddresses: PIP_ADAPTER_ADDRESSES; pOutBufLen: PULONG): dword; stdcall; external 'IPHLPAPI.DLL' name 'GetAdaptersAddresses'; ![]() Nun zu meiner Frage, kann ich das ganze trotzdem verwenden und es zur Windowsversion abhängig machen ? |
Re: WINAPI-Funktionen Windows Versionsabhängig
Hallo Rolf,
verwende doch dynamische statt statischer Bindung, also mit LoadLibrary und GetProcAddress ermitteln, ob die Funktion vorhanden ist. Wenn nicht, ist sie halt nicht zu verwenden, aber das Programm läuft zumindest. |
Re: WINAPI-Funktionen Windows Versionsabhängig
Hallo Deddy,
das wäre eine Idee, mal schauen was ich daraus machen kann. |
Re: WINAPI-Funktionen Windows Versionsabhängig
Habe das Problem jetzt mit LoadLibrary und GetProcAddress gelöst.
|
Re: WINAPI-Funktionen Windows Versionsabhängig
:thumb:
|
Re: WINAPI-Funktionen Windows Versionsabhängig
Ich habe dazu noch eine Frage, kann ich an dem folgenden Beispiel noch etwas optimieren/verbessern ?
Delphi-Quellcode:
hclxwin32 := LoadLibrary('clxwin32.dll');
hnetwin32 := LoadLibrary('netwin32.dll'); hcalwin32 := LoadLibrary('calwin32.dll'); if (hclxwin32 <> 0) and (hnetwin32 <> 0) and (hcalwin32 <> 0) then begin @CallsInit := GetProcAddress(hcalwin32, 'NWCallsInit'); @ScanConnRefs := GetProcAddress(hclxwin32, 'NWCCScanConnRefs'); @GetConnRefInfo := GetProcAddress(hclxwin32, 'NWCCGetConnRefInfo'); @OpenConnByRef := GetProcAddress(hclxwin32, 'NWCCOpenConnByRef'); @CreateContextHandle := GetProcAddress(hnetwin32, 'NWDSCreateContextHandle'); @MapIDToName := GetProcAddress(hnetwin32, 'NWDSMapIDToName'); if (@CallsInit <> nil) and (@ScanConnRefs <> nil) and (@GetConnRefInfo <> nil) and (@OpenConnByRef <> nil) and (@CreateContextHandle <> nil) and (@MapIDToName <> nil) then begin // irgendwelcher Code wird abgearbeitet end; end; |
Re: WINAPI-Funktionen Windows Versionsabhängig
Wenn Sofern Du auch irgendwo FreeLibrary aufrufst, sehe ich jetzt nichts.
[edit] So wird deutlicher, was ich gemeint hatte ;) [/edit] |
Re: WINAPI-Funktionen Windows Versionsabhängig
Zitat:
|
Re: WINAPI-Funktionen Windows Versionsabhängig
Woran und wo gedenkst du denn zu verbessern? Kürzerer Quellcode oder kürzere Laufzeit?
Aber ich denke kaum, dass hier sinnvoll etwas rausgeholt werden kann. |
Re: WINAPI-Funktionen Windows Versionsabhängig
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz