Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Abfrage ob gerade für Delphi-Package kompiliert wird (https://www.delphipraxis.net/192230-abfrage-ob-gerade-fuer-delphi-package-kompiliert-wird.html)

himitsu 31. Mär 2017 18:01

AW: Abfrage ob gerade für Delphi-Package kompiliert wird
 
In ModuleIsPackage steckt aber auch IsPackage drin.

'nen intelligenter Filter der Codevervollständigung war auch noch nie deren Stärke.

Uwe Raabe 31. Mär 2017 22:01

AW: Abfrage ob gerade für Delphi-Package kompiliert wird
 
Zitat:

Zitat von jbg (Beitrag 1366096)
Ich hatte, bevor ich geantwortet habe, noch nach "IsPackage" gesucht, da ich sowas im Kopf hatte :-) (Einheitliche Benennung war noch nie "Delphi"'s Stärke)

Aber man ist auf dem besten Weg:
Delphi-Quellcode:
var
  ModuleIsLib: Boolean;        { True if this module is a dll (a library or a package) }
  ModuleIsPackage: Boolean;    { True if this module is a package }
  ModuleIsCpp: Boolean;        { True if this module is compiled using C++ Builder }

himitsu 1. Apr 2017 05:34

AW: Abfrage ob gerade für Delphi-Package kompiliert wird
 
Ähhhhhhh, wozu ModuleIsCpp?
Wenn ich 'nen Code in C++ schreibe, dann ist das True und wenn ich den in Pascal/Delphi schreibe dann False?

Aber wenn ich in C++ schreibe, dann weiß ich das doch auch so?

[edit] Ich glaub es ist spät.
Beim CppBuilder kann man doch Delphi-Code einbinden, oder Delphi-Units oder irgendwie sowas. :stupid:

Warum eigentlich nicht andersrum?
(OK, abgesehn von .OBJ)

BerndS 3. Apr 2017 13:55

Exe als DLL verwenden.
 
@Neutral General

Ich habe hier ein einfaches Projekt um das zu testen.
Delphi-Quellcode:
program ExeAsDLL;

uses
  WinApi.Windows,
  Vcl.Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
procedure ShowDocument; stdcall;
begin
  WinApi.Windows.MessageBox(0, 'ShowDocument', 'ExeAsDLL', MB_ICONINFORMATION or MB_OK);
end;

exports ShowDocument;

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Der Test erfolgt mit:
rundll32 ExeAsDLL.exe ShowDocument
Unter Windows 7 kommt die bekannte Meldung Programm funktioniert nicht mehr unter W10 wird nichts angezeigt.
Gruß Bernd

himitsu 3. Apr 2017 14:36

AW: Exe als DLL verwenden.
 
Man muß hier in der DLLMain, bzw. in der EXE-Main eventuell noch einen abbruch-Code rein machen ... z.B. vor das
Delphi-Quellcode:
Application.Initialize
etwas ala
Delphi-Quellcode:
if IsLibrary then Exit;

4dk2 4. Apr 2017 08:48

AW: Abfrage ob gerade für Delphi-Package kompiliert wird
 
Zitat:

Zitat von jbg (Beitrag 1366096)

Delphi-Quellcode:
var
  ModuleIsLib: Boolean;        { True if this module is a dll (a library or a package) }
  ModuleIsPackage: Boolean;    { True if this module is a package }
  ModuleIsCpp: Boolean;        { True if this module is compiled using C++ Builder }

DANKE :thumb:

Genau das habe ich für eine BPL gesucht, um ein Design-PKG zu vermeiden :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr.
Seite 2 von 2     12   

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