Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   SNMP Extension Agent DLL (https://www.delphipraxis.net/173641-snmp-extension-agent-dll.html)

ekke 8. Mär 2013 12:49

SNMP Extension Agent DLL
 
Hallo,
ich versuche meine (unter XP funktionierende mit Delphi 7 kompilierte) Version eines "SNMP Extension Agents" unter Windows 7 64bit zum laufen zu bekommen. Leider ohne Erfolg.
Dazu habe ich die DLL mit Delphi XE2 als 32bit variante kompiliert.
Damit die DLL vom SNMP service aufgerufen wird, muss sie in der Registry eingetragen werden.
Um die DLL zu debuggen musste man unter XP c:\windows\system32\snmp.exe als TargetApplication in Run eintragen. Führt man den debugger aus wird snmp.exe geladen, diese lädt dann die zu debuggende DLL und los gehts.
Unter Windows 7 mit Delphi XE (als Administrator gestartet) funktioniert das nicht.
Starte ich den Debugger beendet sich das snmp.exe sofort wieder (man sieht kurz den schwarzen Rahmen einer Console) und die DLL wird nicht geladen.
Starte ich eine Console als Administrator kann ich dort snmp.exe starten, allerdings wird meine DLL nicht geladen.
Denkbar, dass die Registry key nicht richtig sind (WOW3264 Zeug), das erklärt aber nicht warum ich die snmp.exe nicht zum debuggen starten kann.
Danke für jede Idee!
Gruß Ekke

bgeltenpoth 27. Nov 2015 09:11

AW: SNMP Extension Agent DLL
 
Hi ekke...
ich weis der Thread ist schon ziemlich kalt, aber bist du mit dem Thema weiter gekommen? Ich darf derzeit auch eine SNMP Agent Extension DLL entwickeln und scheitere gerade daran das der SNMP Dienst die DLL nicht laden will. Grundsätzlich scheint die Registry Konfiguration zu stimmen, aber der Dienst will die DLL nicht laden:
Der SNMP-Dienst hat die DLL "C:\Data\Projekte\Entwicklung\snmp\test.dll" des Erweiterungs-Agent ignoriert, da dieser falsch konfiguriert ist oder fehlt.
Konntest du feststellen ob das was mit 32Bit Agent DLL und 64 Bit OS / SNMP Dienst zu tun hat?
Die DLL exportiert die erforderlichen Funktionen aber offensichtlich wird die DLL noch nicht mal geladen, geschweige denn eine der Funktionen ausgeführt. Derzeit habe ich hier nur ein bisschen Logging eingebaut...aber auch da passiert nix....

Hast Du eine Lösung für das Debugging Problem gefunden?
Ich versuche zu verstehen ob meine DLL Probleme macht, die Konfiguration noch fehlerhaft ist oder es ein 32/64 Bit Problem gibt. Es gibt leider auch nicht viel Dokumentation zu diesen Themen. Dazu kommt das ich nicht wirklich viel Erfahrung in DLL Entwicklung habe...alles in allem....ein Teufelskreis :-D

Meine Entwicklungsmaschine läuft unter Win7 64 Bit, die DLL soll aber später unter Win2012R2 64 Bit laufen...

Jeder Hinweis ist mir daher mehr als willkommen

Liebe Grüsse

Benedikt

bgeltenpoth 27. Nov 2015 09:36

AW: SNMP Extension Agent DLL
 
So ich habe ein bisschen weiter geforscht....
Es scheint sich wirklich um ein 32/64 Bit Thema zu handeln.
Ich habe meine 32Bit DLL mal auf einer Maschine mit Win7 32 Bit installiert und dort wird sie zumindest gebunden und initialisiert.

bgeltenpoth 27. Nov 2015 10:02

AW: SNMP Extension Agent DLL
 
und weiter geht es...eigentlich ist es ja doch einfacher als gedacht...aber es gibt halt so viele (Fehler-) Möglichkeiten....

Auf 64 Bit Systemen werden offenbar die Konfiguration der 32 Bit Extension DLL's in der Registry unter \Software\Wow6432Node\MyCompany\MyProduct\CurrentVersion erwartet. In der Registry muss dann der RegPfad der unter System\CurrentControlSet\Services\SNMP\Parameters\ ExtensionAgents eingetragen wird aber auf \Software\MyCompany\MyProduct\CurrentVersion (also ohne Wow6432Node) verweisen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz