Entwickler-Ecke

Windows API - WinAPI in DLL finden...


mindtrap - Mi 24.09.08 15:23
Titel: WinAPI in DLL finden...
Hey,

immer wieder komme ich bei dem Punkt an, dass ich für eine bestimmte Funktion der WinApi keine entsprechende Delphilib finde.
Soweit ist das auch nicht schlimm. Meist importiere ich dann einfach aus entsprechenden Dlls die nötigen Funktionen
und bin wieder glücklich.

Mittlerweile passiert es mir aber häufiger, dass ich die entsprechende Dll garnicht finde oder erst nach einer stundenlangen Googlejagt.
In der jeweiligen Hilfe (WDK, SDK) stehen meist nur die Informationen in welcher Headerdatei ich fündig werde.
Dann kann ich zwar mit C++ schonmal schauen, wie die Funktion aufgebaut ist und ob das Resultat meinen Erwartungen entspricht, aber das Problem bleibt. Ich weiß nicht aus welcher Dll ich die Funktion in Delphi importieren muss.

Da einige von euch sicherlich auch immer wieder Funktionen importieren, hier die alles entscheidende Frage:
Wie bekommt ihr heraus, welche Dll ihr verwenden müsst?

Steht das irgendwo in der jeweiligen Hilfe und ich überlese das gekonnt oder gibt es evtl. von M$ eine Referenz?

MfG
mindtrap


AXMD - Mi 24.09.08 15:29

Hier solltest du alles finden: http://msdn.microsoft.com/en-us/library/aa383749.aspx

AXMD


Delete - Mi 24.09.08 23:25
Titel: Re: WinAPI in DLL finden...
user profile iconmindtrap hat folgendes geschrieben:
Wie bekommt ihr heraus, welche Dll ihr verwenden müsst?

Ich weiß ja nicht in welchen SDK du guckst, aber im Windows SDK für die Microsoft Windows API stehen am Ende immer alle nötigen Informationen:
Zitat:

Client: Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95.
Server: Requires Windows Server "Longhorn", Windows Server 2003, Windows 2000 Server, or Windows NT Server.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.
DLL: Requires Kernel32.dll.
Unicode Implemented as CreateFileW (Unicode) and CreateFileA (ANSI). Note that Unicode support on Windows Me/98/95 requires Microsoft Layer for Unicode.


Dezipaitor - Do 25.09.08 00:39

Um welche Funktionen gehts denn?


mindtrap - Do 25.09.08 06:36
Titel: Re: WinAPI in DLL finden...
@AXMD: Danke das ist nützlich. :)

user profile iconLuckie hat folgendes geschrieben:

Ich weiß ja nicht in welchen SDK du guckst, aber im Windows SDK für die Microsoft Windows API stehen am Ende immer alle


In der SDK ist das selten das Problem oder garnicht, hab noch nicht darauf geachtet. Ich arbeite viel mit der WDK.

@Dezipaitor:
Nehmen wir z.B. mal diese Funktionen "VideoPortDDCMonitorHelper" oder "HwVidGetVideoChildDescriptor".
Es wird nur auf die video.h verwiesen.


jaenicke - Do 25.09.08 08:18

Naja, wie der Name schon sagt gehört das zum Windows Driver Kit, und diese Funktionen kannst du doch soweit ich weiß sowieso nicht einfach in einer Anwendung benutzen...
Und deshalb steht im SDK [http://msdn.microsoft.com/en-us/library/aa479182.aspx] auch nur die Headerdatei.

Bei allen "normalen" Funktionen sollte die DLL dabei stehen.


mindtrap - Fr 26.09.08 09:11

user profile iconjaenicke hat folgendes geschrieben:
Naja, wie der Name schon sagt gehört das zum Windows Driver Kit, und diese Funktionen kannst du doch soweit ich weiß sowieso nicht einfach in einer Anwendung benutzen...


Stimmt, "einfach" nicht. Meist gibt es einen anderen Weg den man gehen kann,
z.B. kommt man über die SetupApi an das gleiche Ergebnis, als würde man VideoPortDDCMonitorHelper verwenden.
Mit dem feinen Unterschied, dass man die HwDeviceExtension nicht hat, aber das ist wohl besser so. ;)


Ich habe mir jetzt mal die WDK Build Environment geholt.
Da sind einige interessante Beispiele, DLLs, Header- und Libdateien dabei.
Eventuell hilft mir das in Zukunft weiter.

Thx an alle.