Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: 2 Netzlaufwerkverbindungen in einem Service

  Alt 27. Dez 2012, 10: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
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat