![]() |
Delphi.net 2006 und TService
Hallo Leute
also auf einen neuen Versuch mit meinem TService unter dot net. Hier mal der Source Projekt
Delphi-Quellcode:
und hier meinen Service
program ConnectVCL;
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.dll'} {%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll'} {%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll'} {%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll'} {%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\4.0\Borland.Vcl.dll'} {%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\4.0\Borland.Delphi.dll'} {%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\4.0\Borland.VclRtl.dll'} {%DelphiDotNetAssemblyCompiler '..\Borland.Data.Mssql.dll'} {%DelphiDotNetAssemblyCompiler '..\cc_LicDec.dll'} {%DelphiDotNetAssemblyCompiler '..\ERPConnect.dll'} uses windows, SvcMgr, System.Reflection, System.Runtime.CompilerServices, System.Runtime.InteropServices, service in 'service.pas' {Service1: TService}; {$R *.res} {$REGION 'Programm/Assemblierungs-Informationen'} // // Die allgemeinen Assemblierungsinformationen werden durch die folgenden // Attribute gesteuert. Ändern Sie die Attributwerte, um die zu einer // Assemblierung gehörenden Informationen zu modifizieren. // [assembly: AssemblyDescription('')] [assembly: AssemblyConfiguration('')] [assembly: AssemblyCompany('')] [assembly: AssemblyProduct('')] [assembly: AssemblyCopyright('')] [assembly: AssemblyTrademark('')] [assembly: AssemblyCulture('')] // Der Delphi-Compiler steuert AssemblyTitleAttribute via ExeDescription. // Sie können dies in der IDE über Projekt/Optionen festlegen. // Wenn Sie das Attribut AssemblyTitle wie unten gezeigt manuell festlegen, // wird die IDE-Einstellung überschrieben. // [assembly: AssemblyTitle('')] // // Die Versionsinformation einer Assemblierung enthält die folgenden vier Werte: // // Hauptversion // Nebenversion // Build-Nummer // Revision // // Sie können alle vier Werte festlegen oder für Revision und Build-Nummer die // Standardwerte mit '*' - wie nachfolgend gezeigt - verwenden: [assembly: AssemblyVersion('1.0.*')] // // Zum Signieren einer Assemblierung müssen Sie einen Schlüssel angeben. Weitere Informationen // über das Signieren von Assemblierungen finden Sie in der Microsoft .NET Framework-Dokumentation. // // Mit den folgenden Attributen steuern Sie, welcher Schlüssel für die Signatur verwendet wird. // // Hinweise: // (*) Wenn kein Schlüssel angegeben wird, ist die Assemblierung nicht signiert. // (*) KeyName verweist auf einen Schlüssel, der im Crypto Service Provider // (CSP) auf Ihrem Rechner installiert wurde. KeyFile verweist auf eine // Datei, die einen Schlüssel enthält. // (*) Wenn sowohl der KeyFile- als auch der KeyName-Wert angegeben ist, wird // die folgende Verarbeitung durchgeführt: // (1) Wenn KeyName in dem CSP gefunden wird, wird dieser Schlüssel verwendet. // (2) Wenn KeyName nicht, aber KeyFile vorhanden ist, wird der Schlüssel // in KeyFile im CSP installiert und verwendet. // (*) Ein KeyFile können Sie mit dem Utility sn.exe (Starker Name) erzeugen. // Der Speicherort von KeyFile sollte relativ zum Projektausgabeverzeichnis // %Projektverzeichnis%\bin\<Konfiguration> angegeben werden. Wenn sich Ihr // KeyFile z.B. im Projektverzeichnis befindet, würden Sie das Attribut // würden Sie das Attribut AssemblyKeyFile folgendermaßen festlegen: // [assembly: AssemblyKeyFile('..\\..\\mykey.snk')] // (*) Verzögerte Signatur ist eine erweiterte Option; nähere Informationen // dazu finden Sie in der Microsoft .NET Framework-Dokumentation. // [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile('')] [assembly: AssemblyKeyName('')] // // Verwenden Sie untenstehende Attribute, um die COM-Sichtbarkeit Ihrer Assembilierung zu steuern. // Als Vorgabe ist die ganze Assemblierung für COM sichtbar. Das Setzen von ComVisible auf false // ist die empfohlene Vorgabe für Ihre Assemblierung. Um eine Klasse und Interface für COM sichtbar // zu machen, setzen Sie ComVisible für jeden Einzelnen auf true. Es wird auch empfohlen ein // Guid-Attribut hinzuzufügen. // [assembly: ComVisible(False)] //[assembly: Guid('')] //[assembly: TypeLibVersion(1, 0)] {$ENDREGION} [STAThread] begin // Application.Initialize; // Application.CreateForm(TERPConnect, ERPConnect); // Application.Run; if not Application.DelayInitialize or Application.Installing then Application.Initialize; Application.CreateForm(TService1, Service1); // Application.CreateForm(TERPConnect, ERPConnect); Application.Run; end.
Delphi-Quellcode:
Problem das ich habe das ich eine Compilermeldung bekomme
unit service;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs; type TService1 = class(TService) private { Private-Deklarationen } public function GetServiceController: TServiceController; override; { Public-Deklarationen } end; var Service1: TService1; implementation {$R *.DFM} procedure ServiceController(CtrlCode: DWord); stdcall; begin Service1.Controller(CtrlCode); end; function TService1.GetServiceController: TServiceController; begin Result := ServiceController; end; end. die hier : procedure ServiceController(CtrlCode: DWord); stdcall; wäre nicht nach dem ILCODE-Konvention lasse ich den stdcall weg dann läß es sich kompilieren aber beimn Install bekomme ich die Meldung das der Objectverweis nicht auf eine Objectinstanz festgelegt wurde. wer kann mir helfen. |
Re: Delphi.net 2006 und TService
Kann es sein das du hier VCL.Win32 mit .NET FCL mixt? TService ist aus VCl.Win32 und ob diese auch für VCL.NET portiert wurde :gruebel:
Ich würde entweder: a, Komplett bei Win32 bleiben (VCL.Win32) und den eh schon gestorbenen Delphi.NET-Port auf VCL/Galileo-IDE außen vor lassen. b, Delphi.Prism besorgen und dann vernünftig mit .NET 2.x/3.x arbeiten |
Re: Delphi.net 2006 und TService
Ja habe zur zeit in diesem Projekt einen mix zwischen win32 und .net was auch soweit klappt. und ich auch leider haben muß.
Wollte aber von den Winfoms unter reinem dot net weg. also der mix. Ich könnte noch alle framework 1.1 komponenten rauswerfen, wobei ich noch eine komponente habe die eine dot net Assembly ist die auf jeden fall in das Projekt rein muß |
Re: Delphi.net 2006 und TService
Zitat:
|
Re: Delphi.net 2006 und TService
wo und wie kann ich denn dor net componenten COM-Visible machen ??
Hab ich noch nie gemacht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 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