Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi zwingen nicht verwendete Funktionen zu linken? (https://www.delphipraxis.net/155681-delphi-zwingen-nicht-verwendete-funktionen-zu-linken.html)

Diengo 3. Nov 2010 17:55

Delphi-Version: 2007

Delphi zwingen nicht verwendete Funktionen zu linken?
 
Hallo zusammen,

Delphi scheint so wie es aussieht klugerweise nicht verwendete Funktionen vom Link-Prozess auszuschließen. Das Problem ist nun das ich die "unused" Funktionen dennoch gerne in meiner erzeugten DLL haben möchte. Gibt es da eine Möglichkeit außer die Funktion in die exports Liste aufzunehmen? Rein theoretisch müsste man Delphi mittels einem Schalter ja irgendwie zwingen können, oder täusche ich mich da? :wink:

Grüße,
Diengo.

Assarbad 3. Nov 2010 17:57

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Zitat:

Zitat von Diengo (Beitrag 1059421)
Delphi scheint so wie es aussieht klugerweise nicht verwendete Funktionen vom Link-Prozess auszuschließen.

Weswegen es auch Smart-Linking genannt wird ;)

Zitat:

Zitat von Diengo (Beitrag 1059421)
Das Problem ist nun das ich die "unused" Funktionen dennoch gerne in meiner erzeugten DLL haben möchte. Gibt es da eine Möglichkeit außer die Funktion in die exports Liste aufzunehmen? Rein theoretisch müsste man Delphi mittels einem Schalte ja irgendwie zwingen können, oder täusche ich mich da? :wink:

Ja, referenziere sie irgendwo. Ansonsten könnte eventuell noch helfen die Optimierungen komplett abzuschalten. Aber das ist eventuell nicht im Sinne des Erfinders.

Diengo 3. Nov 2010 18:02

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Danke, klappt mit dem Referenzieren super.

Gruß

Assarbad 3. Nov 2010 18:06

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Übrigens, willkommen in der DP. :-D Ist mir erst jetzt aufgefallen, daß du neu bist.

Wo sind meine Manieren :roll:

Luckie 3. Nov 2010 18:07

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Warum willst du ungenutzten Code in deinem Image haben?

Diengo 3. Nov 2010 18:18

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Zitat:

Zitat von Assarbad (Beitrag 1059431)
Übrigens, willkommen in der DP. :-D Ist mir erst jetzt aufgefallen, daß du neu bist.

Wo sind meine Manieren :roll:

Danke :)

Zitat:

Zitat von Luckie (Beitrag 1059432)
Warum willst du ungenutzten Code in deinem Image haben?

Ich möchte nicht unbedingt alle Funktionen meiner DLL offenlegen, ist zwar erstmal nur ein rein privates Projekt, allerdings ist es recht spannend mit den geheimeren Features rumzuspielen. Dank der Map-Liste sehe ich ja alle Funtionen meiner DLL und kann diese ganz bequem über GetModuleHandle + die Adresse aufrufen.

Ich habe in Zukunft nicht vor irgendetwas böses daraus zu basteln ;)

Oder gibt es hier noch eine elegantere Methode?

Assarbad 3. Nov 2010 18:20

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Zitat:

Zitat von Diengo (Beitrag 1059438)
Oder gibt es hier noch eine elegantere Methode?

Numerische Exporte? Also ohne Namen. Aber frag mich nicht wie oder ob das in Delphi ging. Ist zu lange her. Muß ich erst nachgucken :lol:

Nachtrag:
Zitat:

Zitat von D2009 meint
On the Win32 platform, an index specifier consists of the directive index followed by a numeric constant between 1 and 2,147,483,647. (For more efficient programs, use low index values.) If an entry has no index specifier, the routine is automatically assigned a number in the export table.


Diengo 3. Nov 2010 18:24

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Mhm danke werde mir das noch einmal näher ansehen.

Assarbad 3. Nov 2010 18:29

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Zitat:

Zitat von Diengo (Beitrag 1059443)
Mhm danke werde mir das noch einmal näher ansehen.

Aber falls du sicherstellen willst, daß ältere Kompilate auch mit späteren (d.h. neueren) DLL-Versionen von dir noch funktionieren, solltest du die numerischen Exporte sorgfältig vergeben und nicht mehr ändern. Am besten gleich einen Namen als Kommentar hinterlegen ...

himitsu 3. Nov 2010 18:47

AW: Delphi zwingen nicht verwendete Funktionen zu linken?
 
Oder man nutzt gleich namen, wobei der Exportname nicht im Geringsten der exportieren Funktion entsprechen muß.

Delphi-Quellcode:
// in DLL

procedure EineGanzGeheimeProzedur;
begin
  Beep;
end;

exports
   EineGanzGeheimeProzedur name 'dsnosgd4k';
Genauso wie man eine Funktion nicht unter dem gegebenen Namen importieren muß.

Delphi-Quellcode:
// in EXE

procedure IrgendeineGeheimeProzedur;
  external 'meine.dll' name 'dsnosgd4k'


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz