AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi 2 Netzlaufwerkverbindungen in einem Service
Thema durchsuchen
Ansicht
Themen-Optionen

2 Netzlaufwerkverbindungen in einem Service

Ein Thema von Panschi · begonnen am 27. Dez 2012 · letzter Beitrag vom 27. Dez 2012
Antwort Antwort
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#1

AW: 2 Netzlaufwerkverbindungen in einem Service

  Alt 27. Dez 2012, 08:21
Leider ist das dank des Services und der DLL nicht so leicht zu debuggen!
Habt ihr eine Idee?
Idee 1: Projektgruppe erstellen, DLL und Service an Anwendungspfade kompilieren, Service starten, den Debugger per Menü Run -> Attach to process verbinden.

Idee 2: DLL getrennt debuggen, im Debugger Test-Host-Anwendung angeben (Menü Run -> Parameters ... -> Host application).

Leider geht aus Deinem Post nicht wirklich hervor, wie die beiden Instanzen (?) derselben (?) DLL nun zugreifen - parallel, nacheinander, aus unterschiedlichen DLLs,woher kommt die Konfiguration...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.989 Beiträge
 
Delphi 12 Athens
 
#2

AW: 2 Netzlaufwerkverbindungen in einem Service

  Alt 27. Dez 2012, 09:41
Zu der Deklaration:
function Run: PChar; stdcall; export; Es hat schon Gründe weshalb das in der Windows API nicht so gemacht wird. Wenn, kannst du das mit WideStrings machen, aber so funktioniert es eher zufällig. Denn Delphi räumt den Speicher am Ende der Methode natürlich wieder auf, so dass du einen Pointer auf einen schon freigegebenen Speicherplatz zurücklieferst. Dass das funktioniert, liegt nur daran, dass der Speicher zufällig noch nicht überschrieben ist, wenn er danach benutzt wird. (Vermutlich weil er an einen String zugewiesen und damit sofort kopiert wird.)

Leider ist das dank des Services und der DLL nicht so leicht zu debuggen!
Habt ihr eine Idee?
Idee 1: Projektgruppe erstellen, DLL und Service an Anwendungspfade kompilieren, Service starten, den Debugger per Menü Run -> Attach to process verbinden.
Delphi muss dafür natürlich mit Adminrechten gestartet werden um den Debugger an einen im Systemkontext ausgeführten Dienst anzuhängen, sonst gibt es Fehler 5 (unzureichende Rechte).
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Panschi
Panschi

Registriert seit: 30. Aug 2011
Ort: Sauerland
51 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: 2 Netzlaufwerkverbindungen in einem Service

  Alt 27. Dez 2012, 10:56
Danke für die Antworten!

Die beiden Aufgaben greifen nicht auf den gleichen Speicherbereich zu, da momentan für jeden der beiden eine eigene DLL geladen wird. Also eine Kopie des Originals.

Der PChar wird tatsächlich direkt in einen String kopiert. Ich versuche mal das ganze umzuschreiben und per "Prozess verbinden" zu debuggen
Warum mögen Frauen OOP-Programmierer? Weil sie Klasse haben
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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