Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

dll Export Problem

Empfohlene Antworten

Guten Tag,

ich habe eine Facharbeit vor mir, für die die systemwidehooks benötigt werden. Leider lernt man in zwei Jahren nichts zu dll's und der gleichen.

Also: Es gibt in der Msdn einen Artikel Win32 hooks in den Technical Articles. Dort findet sich gleich am Anfang ein sample, dessen Files man sich kopieren kann. Es werden der sourcecode und die fertige exe und die dll für die hooks geliefert. Das fertige Programm läuft super. Nun möchte ich ja selbst an diesen Ansatz weitermachen und deshalb die dll auch selber compilieren. Das Projekt scheint nicht gerade kompatibel zu VS 6 zu sein (Makefile welches nicht akzeptiert wird). Es werden die Dateien:

Dllstuff.c, Hooks32.c, Hooks32.def, Hooks32.exe, Hooks32.h, Hooks32.ico, Hooks32.rbj, Hooks32.rc, Hooksdll.c, Hooksdll.def, Hooksdll.exp, Hooksdll.lib, Hooksdll.rbj, Hooksdll.rc, Makefile, Message.rc, Hooksdll.dll.

geliefert

Wobei eben die Hooks32.exe und die Hooksdll.dll die fertigen Files sind. Nun habe ich die exe mal neu compiliert und das war nach Einbindung der Hooksdll.lib für den Linker auch kein Problem. Ich habe dafür eine Win32 Anwendung gewählt und mit der Hooks32.h, der Hooks32.c und der Messages.rc die exe compiliert - läuft. Nun aber die dll. Ich habe eine Win32 Dynamic-Link-Libary als Projekt gewählt. Diesmal habe ich die Hooksdll.c, die Hooks32.h und die Message.rc gewählt. Ich hatte die dll leer angelegt und die Dateien dann für das Projekt importiert. Nun habe ich das ganze compiliert und bis auf zwie Warnungen das nicht alle Steuerelementpfade einen Wert zurückgeben, gabs keine Probleme. Nun sah ich schon das die original dll nur 51 kb hatte meine neu compilierte aber über 200 kb. Gut es ist ja eine neue Linkerversion die Dateien stammen ja von 1992. Doch als ich nun die dll mit der neu erstellten exe öffnen wollte sah ich das Problem:

Fehlermeldung: Die Datei HOOKS32.EXE ist verknüpft mit dem fehlenden Export-HOOKSDLL.DLL:InitHooksDll.

Nun habe ich alles mögliche ausprobiert aber obwohl das ja nun ein Lehrexample ist kann ich nicht davon lernen, weil ich die dll mit dem sourcecode nicht durchcompilieren kann.

Vielen vielen Dank für jeden guten Tip, denn ich würde das Problem gerne lösen.

Sven

Ich habe mir das Hooks-Beispiel nie angesehen, aber ich hoffe mal, daß es sich hier nicht um eine statische DLL-Bindung handelt, weil die nur von der Professional und Enterprise Edition vom Studio unterstützt wird. Solltest Du mit einer davon arbeiten kann dies auf keinen Fall das Problem sein.

Je nachdem was für eine Aufrufkonvention besteht, solltest Du als Compileroption entweder /Gd für __cdecl (standard Exporte) oder /Gr für __fastcall (RTTI - das ist aber sehr unwahrscheinlich) oder /Gz für __stdcall (regulärer C Aufruf) ausprobieren, vielleicht kann dann alles richtig gebunden werden.

Ansonsten würde ich nochmal checken, ob auch alle Dateien im Projekt drin sind.

Die Exports waren nicht ganz sauber geschrieben. Ich habe es nach einigen Stunden pause gesehen.

Gruß Sven

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.