August 15, 2020, 06:28:53

Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!


GDI32.dll-Declares

Begonnen von crystal, Juni 24, 2020, 19:18:46

⏪ vorheriges - nächstes ⏩

crystal

Liebes Forum,
gerne möchte ich in Access-VBA einige API-Funktionen, z. B. aus GDI32.DLL, nutzen. Ich dachte, ein Verweis auf die DLL würde da ausreichen - aber das geht so wohl nicht (ein Verweis auf GDI32.DLL kann nicht zugefügt werden).
Also muss ich wohl alle Funktionen in der DLL, die ich nutzen möchte, in VBA zunächst deklarieren.
Entsprechendes gilt auch für Types, die intern von GDI benutzt werden.

Die Suche nach passenden Beispielen im Internet liefert unzählige Beispiele, die aber zumeist für VB geschrieben sind.

Hat jemand Erfahrung mit diesen ganzen Declares, gibt es z. B. für GDI32.DLL irgendwo eine Textquelle, in der alle Declares drin sind?

Ich finde im Internet z. B. schöne Beispiele für die Umwandlung einer "Memory-Bitmap" in JPG; wenn ich versuche, den Code in Access zu nutzen, meldet der Compiler Unmengen nicht deklarierter Funktionen oder Typen. Oder es scheitert daran, dass das Beispiel eine BMP-Datei einliest, ich aber eine mit BitBlt erstellte Bitmap in jpg wandeln möchte.

Ich dachte, so wäre so einfach - auf die DLL verweisen und fertig. Hab mich wohl viel zu früh gefreut...

Kann mir jemand helfen?

Grüße,
crystal

Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

markus888

Juni 24, 2020, 21:20:56 #1 Letzte Bearbeitung: Juni 25, 2020, 06:08:33 von markus888 Grund: Links
Zitat von: crystal am Juni 24, 2020, 19:18:46die aber zumeist für VB geschrieben sind.

Meinst du VB6 oder VB.net.
Bei VB6 ist ja kein Unterschied.

Grundsätzlich ist es von Vorteil sich mit den Grundlagen zu beschäftigen.
Ansonsten bleibt man immer ein Kopierer und braucht Code von anderen.

Edit:
Ein Verweis ist bei COM-DLL gefragt.
Hier geht es um DLL mit Standard Aufruf-Konvention - die einzige (so viel ich weiß) die VBA direkt durchführen kann.
Bei allen anderen Aufrufkonventionen braucht man dann wieder eine DLL Funktion die die Parameter richtig an den Stack oder Register liefert.

Hier einige Basics die mir geholfen haben:
Anatomy of a Declare Statement
Win32API mit vielen Deklarationen 64 Bit
Declare
Windows Data Types
10 Jahre Access

PhilS

Zitat von: crystal am Juni 24, 2020, 19:18:46Hat jemand Erfahrung mit diesen ganzen Declares, gibt es z. B. für GDI32.DLL irgendwo eine Textquelle, in der alle Declares drin sind?
Sascha Trowitzsch hat ein tolles GDIPlus Modul erstellt, in dem viele der Declares enthalten waren. Leider ist seine mosstools.de Webseite auf der es das zum Download gab seit einigen Monaten nicht mehr erreichbar. - Vielleicht googelst du einfach mal nach den hier enthalten Stichworten...
Access DevTools - Find and Replace
Komfortables Suchen und Ersetzen in den Entwurfseigenschaften von Access-Objekten. In Abfragen, Formularen, Berichten und VBA-Code - Überall und rasend schnell!