| Autor |
Beitrag |
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Do 07.10.04 16:35
Hab nen absolut bekloppten Fehler gefunden:
Versucht mal die im Interface von System.pas deklarierte Funktion _RunError oder _RaiseExcept aufzurufen
Laut Deklaration müsste dies OHNE weiteres Möglich sein, doch wenn ich mit einem Source-Schnipsel ala:
Delphi-Quelltext
oder
Delphi-Quelltext 1: 2: 3:
| asm CALL System._RaiseExcept end; |
versuche, die Funktion aufzurufen, liefert mir Delphi nur ein lapidares:
| Der Delphi-Compiler für D5 bis D7 hat folgendes geschrieben: | | Unit1.pas(XY): Unbekannter Bezeichner: '_RaiseExcept' |
obwohl diese beiden Bezeichner EINDEUTIG im Interface der System.pas (Zeile 688 - Interface!!!) deklariert sind.
Ich hoffe, einer von euch kann sich das erklären.
(Die Frage für die ich das brauch hat bereits einen eigenen Thread
www.delphi-forum.de/viewtopic.php?t=30580 und braucht daher HIER nicht beantwortet zu werden.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Do 07.10.04 17:34
Zuletzt bearbeitet von uall@ogc am Fr 08.10.04 09:51, insgesamt 1-mal bearbeitet
|
|
BenBE 
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Do 07.10.04 21:30
@uall@opc: Genau dafür gab es schon den anderen Thread. Das wollte ich HIER nicht wissen.
In diesem Thread wollte ich wissen, WARUM der Delphi-Compiler mir den Aufruf der im Interface-Deklarierten Funktion _RaiseExcept (und anderen mit _* am Anfang) verweigert ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Fr 08.10.04 00:30
| BenBE hat folgendes geschrieben: | | In diesem Thread wollte ich wissen, WARUM der Delphi-Compiler mir den Aufruf der im Interface-Deklarierten Funktion _RaiseExcept (und anderen mit _* am Anfang) verweigert ... |
Weil es die System unit ist und die ist sozusagen mit dem Compiler verheiratet, also die sogenannte Compiler-Magic.
_________________ Ist Zeit wirklich Geld?
|
|
uall@ogc
      
Beiträge: 1826
Erhaltene Danke: 11
Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
|
Verfasst: Fr 08.10.04 10:03
wenn man sich die system unit mal anscheun würde könnte man das sogar nachlesen:
Delphi-Quelltext 1: 2: 3: 4: 5:
| function LoadResString(ResStringRec: PResStringRec): string;
procedure _COS; |
|
|
BenBE 
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 08.10.04 11:26
Aber selbst, wenn das so wäre müssten die ja laut Pascal Syntax "verfügbar" sein.
Das ist ja das was mich daran wundert ...
Also hat Borland da ein klein wenig an der System.dcu rumgefummelt, dass diese Befehle nicht mehr public sind, OBWOHL diese im Interface stehen  Wenn ja ergibt sich folgende Frage:
Warum deklariert Borland diese Funktions dann public?
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
AndyB
      
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: Fr 08.10.04 12:38
| BenBE hat folgendes geschrieben: | | Also hat Borland da ein klein wenig an der System.dcu rumgefummelt |
Nein haben sie nicht. Die System unit gehört zum Compiler. Du kannst nicht einfach die System Unit von Delphi 7 in Delphi 6 einbauen, und dann darauf vertrauen, dass das Delphi 6 Programm kompiliert. Wie ich schon schrieb: die ist sozusagen mit dem Compiler verheiratet
_________________ Ist Zeit wirklich Geld?
|
|
|