Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#8

AW: Handle von Konsolen-App?

  Alt 30. Aug 2022, 17:20
Was Du haben willst, ist ein klassisches CGI-Programm.

Mein olles Delphi7 bietet das unter

Datei
Neu
weitere
Web-Server-Anwendung

und dort dann CGI-Einzelanwendung

an.

Damit hast Du schonmal alles, was eine entsprechende Konsolenanwendung benötigt.

Die weitere Programmierung ist identisch mit der einer ISAPI.dll.

Und die war ja hier Daten lesen und schreiben aus einer ISAPI-Dll schonmal Thema. Damit sollte es für Dich da eine sehr geringe Lernkurve geben.

Bei Delphi 7 ist dashier ein Grundgerüst für ein CGI-Programm:
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  WebBroker,
  CGIApp,
  Unit1 in 'Unit1.pas{WebModule1: TWebModule};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TWebModule1, WebModule1);
  Application.Run;
end.
und dashier eine ISAPI.dll:
Delphi-Quellcode:
library Project2;

uses
  ActiveX,
  ComObj,
  WebBroker,
  ISAPIThreadPool,
  ISAPIApp,
  Unit1 in 'Unit1.pas{WebModule1: TWebModule};

{$R *.res}

exports
  GetExtensionVersion,
  HttpExtensionProc,
  TerminateExtension;

begin
  CoInitFlags := COINIT_MULTITHREADED;
  Application.Initialize;
  Application.CreateForm(TWebModule1, WebModule1);
  Application.Run;
end.
Und wenn man das TWebModule1 in beides einbindet, kann man sehr einfach aus einem Webmodul sowohl eine ISAPI.dll als auch ein CGI-Programm machen und umgekehrt (derweil: Sie sind absolut kompatibel).

Achso: Man kann ein Konsolenprogramm auch per Pipe "bedienen", muss man bei CGI-Programmen aber nicht, das bekommt man hier geschenkt. (Zumindest war es bei Delphi 7 so, ob's aktuell auch noch so ist, müsstest Du mal überprüfen, kann mir aber nicht vorstellen, dass es hier jetzt auf einmal große Unterschiede geben könnte.)
  Mit Zitat antworten Zitat