![]() |
Remote Procedure Call
Hallo erstmal,
ich wollte mal fragen, ob jemand von euch schonmal Erfahrungen mit RPC (Remote procedure call) gemacht hat? Das heißt, ich möchte eine Funktion in einer DLL zur Laufzeit des Programmes "umhängen" können. Ich möchte die Anwendung nicht immer neu starten wenn ich ein Zeichen im Source geändert habe :-) Wäre nett wenn jemand dazu was schreibt. MFG Alex |
Re: Remote Procedure Call
RPC hat nichts mit DLLs zu tun. RPC definiert, wie man Prozeduren/Funktionen in einem entfernten
Prozess aufruft und die Funktions-Parameter über Netzwerk transportiert. ![]() Um eine DLL zu testen geht man so vor: * man erstellt ein Grundgerüst der DLL (das hast du schon) * man erstellt eine Testanwendung, die die DLL lädt und dann verschiedene Funktionen aufruft * man öffnet das DLL-Projekt und trägt die Testanwendung in der Delphi-IDE unter Start->Parameter->Hostanwendung ein Jetzt braucht man nur noch F9 zu drücken, die DLL wird kompiliert und die Testanwendung wird gestartet. Man führt seine Test durch, beendet die Testanwendung und kann den Sourcecode ändern. Mit dieser Arbeitsweise kann man auf schmutzige Tricks verzichten und hat dennoch ein hoher Änderungstempo. |
Re: Remote Procedure Call
okay Danke!
Wie kann ich dann zur Laufzeit eine DLL "umhängen". Ich dachte das geht damit RPC hat sich aber anscheind erledigt :-) Ich habe eine ziemlich große Anwendung und man sollte sie nicht immer neu starten ;-) Wie kann ich da Funktionen schnell umhängen? MFG Alex |
Re: Remote Procedure Call
Zitat:
Solange die Anwendung die DLL geöffnet hat, ist die DLL schreibgeschützt. Nix zu machen, da hat das Betriebssystem seine Finger drauf. Du kannst also höchstens zwei Buttons mit "Unload DLL" und "Load DLL" in deine Anwendung einbauen. Aber auch das ist schwierig, wenn du die DLL nicht selbst mit LoadLibrary geladen hast. |
Re: Remote Procedure Call
Was heißt umhängen?
Wenn du meinst, dass du eine neue DLL hast die das Programm benutzen sollst, musst du die DLL dynamisch laden (am besten in dem Programm dann einne Button einbauen der das dann übernimmt) |
Re: Remote Procedure Call
In der DLL ist eine ziemlich große Procedure. Wenn man diese jetzt für den Kunden ändern muss :-) und es sich dabei nur um ein kleinen Wert handelt, will ich nicht die ganze Anwendung neu starten sondern der Anwendung sagen, jetzt nutze eben DLL_2 weil die Procedure aus DLL_1 für den Kunden nicht mehr gewünscht ist.
Also muss ich sie seperat laden bzw. entladen? MFG Alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 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